DsBindByInstance 函式會明確系結至任何 AD LDS 或 Active Directory 實例。
語法
NTDSAPI_POSTXP DWORD DsBindByInstanceA(
[in] LPCSTR ServerName,
[in] LPCSTR Annotation,
[in] GUID *InstanceGuid,
[in] LPCSTR DnsDomainName,
[in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
[in, optional] LPCSTR ServicePrincipalName,
[in, optional] DWORD BindFlags,
[out] HANDLE *phDS
);
參數
[in] ServerName
指定實例名稱之 Null 終止字串的指標。 需要此參數才能系結至 AD LDS 實例。 如果系結至 Active Directory 實例時,這個參數 NULL,則 DnsDomainName 參數必須包含值。 如果此參數和 DnsDomainName 參數都 NULL,則函式會失敗,傳回值 ERROR_INVALID_PARAMETER (87)。
[in] Annotation
Null 終止字串的指標,指定系結至 Active Directory 實例時,AD LDS 實例的埠號碼或 NULL。 例如,“389”。
如果這個參數在依網域系結至 Active Directory 實例時 NULL,則必須指定 DnsDomainName 參數。 如果系結至 AD LDS 實例時,這個參數 NULL,則必須指定 InstanceGuid 參數。
[in] InstanceGuid
包含AD LDS 實例 GUID 之 GUID 值的指標。 GUID 值是 實例 nTDSDSA 物件的 objectGUID 属性。 如果系結至 AD LDS 實例時,這個參數 NULL,則必須指定 Annotation 參數。
[in] DnsDomainName
當依網域系結至 Active Directory 實例時,以 Null 終止字串的指標,指定網域的 DNS 名稱。 將此參數設定為 NULL,以依伺服器或 AD LDS 實例系結至 Active Directory 實例。
[in, optional] AuthIdentity
用來啟動 RPC 作業階段的認證句柄。 使用 DsMakePasswordCredentials 函式來建立適合 AuthIdentity的結構。
[in, optional] ServicePrincipalName
Null 終止字串的指標,指定要指派給客戶端的服務主體名稱。
在 ServicePrincipalName 中傳遞
[in, optional] BindFlags
包含一組旗標,可定義此函式的行為。 此參數可以包含零或下列一或多個值的組合。
NTDSAPI_BIND_ALLOW_DELEGATION (1)
導致系結使用委派模擬層級。 這可讓需要委派的作業,例如 DsAddSidHistory成功。 指定此旗標也會導致 DsBindWithSpnEx 運作,類似於 dsBindWithSpn。
如果未指定此旗標,系結將會使用模擬模擬層級。 如需模擬層級的詳細資訊,請參閱 模擬層級。
大部分的作業不需要委派模擬層級;只有在需要時,才應該指定這個旗標。 系結至具有委派模擬層級的 Rogue 伺服器,可讓 Rogue 伺服器使用您的認證連線到非流氓伺服器,並執行非預期作業。
NTDSAPI_BIND_FORCE_KERBEROS (4)
Active Directory 輕量型目錄服務:如果指定此旗標,DsBindWithSpnEx 需要使用 Kerberos 驗證。 如果無法建立 Kerberos 驗證,DsBindWithSpnEx 將不會嘗試使用任何其他機制進行驗證。
[out] phDS
接收系結句柄之 HANDLE 值的位址。 若要關閉此句柄,請呼叫 DsUnBind。
傳回值
如果成功或 RPC 或 Win32 錯誤,則傳回 NO_ERROR 否則傳回 。 可能的錯誤碼包括下列清單中所列的錯誤碼。
言論
下列清單列出系結至 實例的必要參數值。
| 實例 | ServerName | 註釋 | InstanceGuid | DnsDomainName |
|---|---|---|---|---|
| 依伺服器排序的Active Directory | 伺服器名稱 | NULL | NULL | NULL |
| 依網域的 Active Directory | NULL | NULL | NULL | DNS 功能變數名稱 |
| 依埠的 AD LDS | 具有AD LDS 安裝之電腦的 DNS 名稱。 | 埠號碼 | NULL | NULL |
| GUID 的 AD LDS | 具有AD LDS 安裝之電腦的 DNS 名稱。 | NULL | 實例 GUID | NULL |
注意
ntdsapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 DsBindByInstance 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
| 要求 | 價值 |
|---|---|
| 最低支援的用戶端 | Windows Vista |
| 支援的最低伺服器 | Windows Server 2008 |
| 目標平臺 | 窗戶 |
| 標頭 | ntdsapi.h |
| 連結庫 | Ntdsapi.lib |
| DLL | Ntdsapi.dll |