共用方式為


ldap_init函式 (winldap.h)

ldap_init函式會使用LDAP伺服器初始化會話。

語法

WINLDAPAPI LDAP *LDAPAPI ldap_init(
  [in] PSTR  HostName,
  [in] ULONG PortNumber
);

參數

[in] HostName

包含功能變數名稱的 Null 終止字串指標,或以空格分隔的主機名清單或虛線字串清單,代表執行要連線之 LDAP 伺服器之主機的 IP 位址。 清單中的每一個主機名都可以包含選擇性埠號碼,並以冒號 (:) 分隔主機本身。 如需連線到 Active Directory 伺服器時使用 LDAP_OPT_AREC_EXCLUSIVE 選項的詳細資訊,請參閱一節。

[in] PortNumber

包含要連線的 TCP 連接埠號碼。 設定為 LDAP_PORT 以取得預設埠 389。 如果主機名包含埠號碼,則會忽略此參數。

傳回值

如果函式成功,它會以 LDAP 數據結構的指標形式傳回會話句柄。 當不再需要會話句 柄時, 必須釋放ldap_unbind呼叫。

如果函式失敗,則會傳回 NULL。 使用 LdapGetLastError 來擷取錯誤碼。

備註

呼叫 ldap_init 以建立LDAP伺服器的連線區塊。 不同於 ldap_open對 ldap_init 的呼叫不會開啟連線。 您可以明確地呼叫 ldap_connect ,讓連結庫連絡伺服器。 當您想要指定本機逾時時,在此情況下,您會先呼叫 ldap_set_option,並在呼叫 ldap_connect之前,使用 來自 ldap_init 的連接區塊 呼叫 。 不過,通常不需要此呼叫,因為第一個作業函式需要開啟 的連接呼叫, 如果尚未呼叫,則ldap_connect內部呼叫。

函式會配置 LDAP 數據結構來維護會話的狀態數據,並傳回此結構的句柄。 將此句柄傳遞至會話期間的LDAP函式呼叫。

HostName 參數可以是 NULL,在此情況下,運行時間會嘗試尋找“default” LDAP 伺服器。 呼叫 ldap_connect 時,會依照列出的順序嘗試主機,並在第一次成功連線時停止。 對於 Active Directory 伺服器, DsGetDcName 函式可用來取得伺服器的名稱,然後可以當做 HostName 參數傳遞,而不是使用 NULL

即使 使用 ldap_set_option 函式來設定 LDAP_OPT_GETDSNAME_FLAGS 選項,也會指定將傳遞至 DsGetDCName 的旗標,以探索要連線的 DC。 除了LDAP_OPT_GETDSNAME_FLAGS指定的旗標之外,LDAP 用戶端也會將DS_ONLY_LDAP_NEEDED旗標傳遞給 DsGetDCName

如果為 HostName 參數傳遞 NULL,而呼叫電腦是 Active Directory 網域的成員,則運行時間會在嘗試連線時,在目前電腦所屬的網域中搜尋 DC。

如果為 HostName 參數傳遞 NULL,而呼叫電腦是 Active Directory 網域的 DC,則運行時間會以 127.0.0.1 切換 NULL,並在嘗試連線時使用回送連接到本機電腦。

如果 傳遞 HostName 參數的 Active Directory 功能變數名稱, 則ldap_init 會在該網域中找到“default” LDAP 伺服器。

如果 HostName 設定為 NULL 或功能變數名稱,則會自動重新連線。 如果連線的DC因連線存留期的某些原因而停止運作,LDAP 會自動重新連線到指定網域中的另一個DC。 此行為可以使用 預設開啟的 LDAP_OPT_AUTO_RECONNECT 工作階段選項來關閉或開啟。

如果 傳遞 HostName 參數的 Active Directory DNS 伺服器名稱,則應該先呼叫 ldap_set_option ,在呼叫任何建立實際連線的 LDAP 函式之前,先在 上設定 LDAP_OPT_AREC_EXCLUSIVE 旗標。 這會強制 A 記錄查閱,並在解析主機名時略過任何 SRV 記錄查閱。 如果是具有撥號連線的分公司,使用 A-Record 查閱可避免在解析名稱時強制撥號查詢 SRV 記錄的遠端 DNS 伺服器。

如果全域編錄埠號碼傳遞至 ldap_init 做為其中一個自變數,則針對該埠號碼傳遞的 HostName 必須是樹系的名稱, DsGetDcName 的基礎呼叫 () 才能正確尋找企業中的 GC。

多線程: ldap_init 的呼叫是安全線程。

請注意,ldap_init 是初始化LDAP會話的慣用方法。 目前LDAP RFC已大幅取代 使用ldap_open ,因為它會排除使用任何會話選項。
 

規格需求

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

請參閱

函式

初始化會話

ldap_connect

ldap_open

ldap_set_option

ldap_unbind