共用方式為


DsClientMakeSpnForTargetServerA 函式 (ntdsapi.h)

DsClientMakeSpnForTargetServer 函式會建構服務主體名稱 (SPN),以識別要用於驗證的特定伺服器。

語法

NTDSAPI DWORD DsClientMakeSpnForTargetServerA(
  [in]      LPCSTR ServiceClass,
  [in]      LPCSTR ServiceName,
  [in, out] DWORD  *pcSpnLength,
  [out]     LPSTR  pszSpn
);

參數

[in] ServiceClass

包含服務所定義之服務類別之 Null 終止字串的指標。 這可以是服務唯一的任何字串。

[in] ServiceName

包含辨別名稱服務 (DNS) 主機名之 Null 終止字串的指標。 這可以是因特網標準格式的完整名稱或IP位址。

不建議針對 ServiceName 使用 IP 位址,因為這可能會造成安全性問題。 建構SPN之前,IP位址必須透過 DNS 名稱解析轉譯為電腦名稱。 DNS 名稱解析有可能遭到詐騙,將預期的計算機名稱取代為未經授權的計算機名稱。

[in, out] pcSpnLength

DWORD 值的指標,在專案上,會以字元為單位包含 pszSpn 緩衝區 大小。 在輸出時,此參數會接收複製到 pszSpn 緩衝區的字元數,包括終止 NULL

[out] pszSpn

接收SPN之字串緩衝區的指標。

傳回值

此函式會傳回標準 Windows 錯誤碼。

言論

使用此函式時,請提供服務類別和 DNS 主機名的一部分。

此函式是 DsMakeSpn 函式的簡化版本。 ServiceName 是透過 DNS 解析而正式建立的。

不支援以 GUID 為基礎的 DNS 名稱。 建構時,簡化的SPN如下所示:

ServiceClass / ServiceName / ServiceName

實例名稱部分 (第二個位置) 一律設定為預設值。 不會使用埠和查閱者欄位。

注意

ntdsapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 DsClientMakeSpnForTargetServer 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Vista
支援的最低伺服器 Windows Server 2008
目標平臺 窗戶
標頭 ntdsapi.h
連結庫 Ntdsapi.lib
DLL Ntdsapi.dll

另請參閱

域控制器和復寫管理功能

DsMakeSpn