共用方式為


dsBindWithSpnExW 函式 (ntdsapi.h)

DsBindWithSpnEx 函式會使用指定的認證和特定的服務主體名稱系結至域控制器, (SPN) 進行相互驗證。 此函式類似於 DsBindWithSpn 函式,但此函式允許使用 BindFlags 參數提供更多係結選項。

提供此函式,其中需要完全控制相互驗證。 如果您預期 DsBind 為您尋找伺服器,請勿使用此函式,因為 SPN 是電腦專用的,而且您提供的 SPN 不太可能符合 DsBind 為您找到的伺服器。 提供 NULLServicePrincipalName 自變數會導致行為與 DsBindWithCred 相同。

語法

NTDSAPI_POSTXP DWORD DsBindWithSpnExW(
  [in, optional] LPCWSTR                  DomainControllerName,
  [in, optional] LPCWSTR                  DnsDomainName,
  [in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  [in, optional] LPCWSTR                  ServicePrincipalName,
  [in, optional] DWORD                    BindFlags,
  [out]          HANDLE                   *phDS
);

參數

[in, optional] DomainControllerName

Null 終止字串的指標,其中包含要系結之網域的完整 DNS 名稱。 如需詳細資訊,請參閱 DsBind 主題中的 DomainControllerName 描述。

[in, optional] DnsDomainName

Null 終止字串的指標,其中包含要系結之網域的完整 DNS 名稱。 如需詳細資訊,請參閱 DsBind 主題中的 DnsDomainName 描述。

[in, optional] AuthIdentity

包含 RPC_AUTH_IDENTITY_HANDLE 值,表示要用於系結的認證。 The

DsMakePasswordCredentials 函 式可用來取得此值。 如果此參數為 NULL,則會使用呼叫線程的認證。

必須先呼叫 DsUnBind ,才能使用 DsFreePasswordCredentials 函式釋放此句柄。

[in, optional] ServicePrincipalName

Null 終止字串的指標,指定要指派給客戶端的服務主體名稱。 在 ServicePrincipalName 中傳遞 NULL 相當於對 DsBindWithCred 函式的呼叫。

[in, optional] BindFlags

包含一組旗標,可定義此函式的行為。 此參數可以包含零或下列清單中所列的值組合。

NTDSAPI_BIND_ALLOW_DELEGATION (1)

導致系結使用委派模擬層級。 這可讓需要委派的作業成功,例如 DsAddSidHistory。 指定此旗標也會讓 DsBindWithSpnExDsBindWithSpn 一樣運作。

如果未指定此旗標,系結將會使用模擬模擬層級。 如需詳細資訊,請參閱 模擬層級

大部分的作業不需要委派模擬層級,因此只有在絕對必要時才應該指定這個旗標。 系結至具有委派模擬層級的 Rogue 伺服器,可讓 Rogue 伺服器使用您的認證連線到非 Rogue 伺服器,並執行非預期的作業。

NTDSAPI_BIND_FIND_BINDING (2)

保留的。

NTDSAPI_BIND_FORCE_KERBEROS (4)

Active Directory 輕量型目錄服務: 如果指定此旗標, DsBindWithSpnEx 會 強制使用 Kerberos 驗證。 如果無法建立 Kerberos 驗證, DsBindWithSpnEx 將不會嘗試使用任何其他方法進行驗證。

[out] phDS

接收系結句柄之 HANDLE 值的位址。 若要關閉此句柄,請將它傳遞給 DsUnBind 函式

傳回值

如果成功或 Windows 或 RPC 錯誤碼,則傳回 ERROR_SUCCESS 否則傳回 。 下列清單列出常見的錯誤碼。

備註

注意

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

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 ntdsapi.h
程式庫 Ntdsapi.lib
Dll Ntdsapi.dll

另請參閱

域控制器和復寫管理功能

DsBind

DsBindWithCred

DsBindWithSpn

DsUnBind

模擬層級