共用方式為


ldap_bind_s函式 (winldap.h)

ldap_bind_s函式會同步驗證 LDAP 伺服器的用戶端。

語法

WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
  [in] LDAP        *ld,
  [in] const PSTR  dn,
  [in] const PCHAR cred,
  [in] ULONG       method
);

參數

[in] ld

會話句柄。

[in] dn

Null 終止字串的指標,其中包含用來系結之項目的辨別名稱。 這可以是 DN、UPN、WinNT 樣式使用者名稱,或是目錄伺服器將接受為標識碼的其他名稱。

[in] cred

Null 終止字串的指標,其中包含要用來驗證的認證。 您可以使用此參數傳遞任意認證。 認證的格式和內容取決於 方法 參數的設定。 如需詳細資訊,請參閱<備註>。

[in] method

指出要使用的驗證方法。 如需詳細資訊和有效異步驗證方法的清單,請參閱一節。 如需有效異步驗證方法的詳細資訊和描述,請參閱 ldap_bind

傳回值

如果函式成功,傳回值 會LDAP_SUCCESS

如果函式失敗,它會傳回錯誤碼。 如需詳細資訊,請參閱 傳回值

備註

在 Windows Server 2008 和 Windows Vista 中引進用戶帳戶控制,對於在 LDAP 中進行修改或新增,會有非常重要的結果。 當使用者以受限制的 UAC 系統管理員令牌登入 DC,並使用 NULL 認證時,任何修改或新增目錄或任何架構變更作業都會失敗。 這包括 DirSync 搜尋、使用 SecurityDescriptorFlags 和其他許多作業時,從物件的 ntSecurityDescriptor 属性擷取 SACL。

這些全都會失敗,且訪問許可權不足。

如果系統管理員登入 DC 時,用戶帳戶控制生效,系統管理員會在登入工作階段中取得受限制的令牌。 如果接著使用具有 NULL 認證的ldap_bind_s,則進行修改或新增的作業將會失敗。

ldap_bind_s實作支援下表所列的驗證方法。 使用 LDAP_AUTH_SIMPLE 選項呼叫ldap_bind_s相當於呼叫 ldap_simple_bind_s

方法 描述 認證
LDAP_AUTH_SIMPLE 使用純文字密碼進行驗證。 包含用戶密碼的字串。
LDAP_AUTH_DIGEST 摘要式驗證套件。 若要以目前使用者身分登入,請將 dncred 參數設定為 NULL。 若要以其他使用者身分登入,請將 dn 參數設定為 NULL ,並將 cred 參數設定為具有適當使用者名稱、功能變數名稱和密碼 之SEC_WINNT_AUTH_IDENTITY 結構的指標。
LDAP_AUTH_DPA 分散式密碼驗證。 由 Microsoft 成員資格系統使用。 若要以目前使用者身分登入,請將 dncred 參數設定為 NULL。 若要以其他使用者身分登入,請將 dn 參數設定為 NULL ,並將 cred 參數設定為具有適當使用者名稱、功能變數名稱和密碼 之SEC_WINNT_AUTH_IDENTITY 結構的指標。
LDAP_AUTH_MSN Microsoft 網路驗證服務。 若要以目前使用者身分登入,請將 dncred 參數設定為 NULL。 若要以其他使用者身分登入,請將 dn 參數設定為 NULL ,並將 cred 參數設定為具有適當使用者名稱、功能變數名稱和密碼 之SEC_WINNT_AUTH_IDENTITY 結構的指標。
LDAP_AUTH_NEGOTIATE 一般安全性服務 (GSS) (Snego) 。 不會提供驗證,而是從可用服務清單中選擇最適當的驗證方法,並將所有驗證數據傳遞至該服務。 若要以目前使用者身分登入,請將 dncred 參數設定為 NULL。 若要以其他使用者身分登入,請將 dn 參數設定為 NULL ,並將 cred 參數設定為具有適當使用者名稱、功能變數名稱和密碼的 SEC_WINNT_AUTH_IDENTITYSEC_WINNT_AUTH_IDENTITY_EX 結構指標。
LDAP_AUTH_NTLM NT LAN 管理員 若要以目前使用者身分登入,請將 dncred 參數設定為 NULL。 若要以其他使用者身分登入,請將 dn 參數設定為 NULL ,並將 cred 參數設定為具有適當使用者名稱、功能變數名稱和密碼的 SEC_WINNT_AUTH_IDENTITYSEC_WINNT_AUTH_IDENTITY_EX 結構指標。
LDAP_AUTH_SICILY 涵蓋 MSN 伺服器的套件交涉。 若要以目前使用者身分登入,請將 dncred 參數設定為 NULL。 若要以其他使用者身分登入,請將 dn 參數設定為 NULL ,並將 cred 參數設定為具有適當使用者名稱、功能變數名稱和密碼 之SEC_WINNT_AUTH_IDENTITY 結構的指標。
LDAP_AUTH_SSPI 已過時。 包含回溯相容性。 使用此常數會選取 GSS (Snego) 交涉服務。 LDAP_AUTH_NEGOTIATE相同。
 

針對異步系結驗證,請使用 LDAP_AUTH_SIMPLE 搭配 ldap_bind

系結作業會藉由提供辨別名稱和某種類型的驗證認證,例如密碼,來識別用戶端至目錄伺服器。 確切的認證取決於所使用的驗證方法。 如果您針對具有ldap_bind_s () ( 非簡單) 的認證傳入 NULL,則會使用目前的使用者或服務認證。 如果指定ldap_simple_bind_s ) 中的簡單 系結方法 (,則相當於 NULL 純文本密碼。 如需詳細資訊,請參閱 ldap_bind

請注意,LDAP 2 伺服器在嘗試需要驗證的其他作業之前,必須先系結應用程式。

多線程:系結呼叫是不安全的,因為它們會套用至整個連線。 如果線程共用連線,並嘗試與其他作業線程系結作業,請小心。

注意 Microsoft LDAP 用戶端會針對每個系結回應往返使用預設逾時值為 120 秒 (2 分鐘) 。 您可以使用 LDAP_OPT_TIMELIMIT 工作階段選項來變更此逾時值。 除非使用 ldap_set_option 指定,否則其他作業不會有逾時。
 
當會話句柄上的所有作業都完成時,必須將 LDAP 會話句柄傳遞至 ldap_unbind 函式,以終止會話。 此外,如果 ldap_bind_s 呼叫失敗,當不再需要錯誤復原時,會話句柄應該會透過呼叫來釋放 ldap_unbind

規格需求

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

另請參閱

建立LDAP會話

函式

傳回值

SEC_WINNT_AUTH_IDENTITY

ldap_bind

ldap_simple_bind_s

ldap_unbind