ldap_open 函数 (winldap.h)

[ldap_open 可用于“要求”部分中指定的操作系统;但不建议这样做。 请改用 ldap_init.]

ldap_open 函数创建并初始化连接块,然后打开与 LDAP 服务器的连接。

语法

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

参数

[in] HostName

指向以 null 结尾的字符串的指针。 域名、主机名列表或表示 LDAP 服务器主机 IP 地址的虚线字符串。 使用单个空格分隔列表中的主机名。 列表中的每个主机名后跟一个端口号。 可选的端口号与主机本身之间用冒号 (:) 分隔。 LDAP 运行时尝试按列出的顺序与主机建立连接,并在成功建立连接时停止。 请注意,只有 ldap_open 尝试在返回调用方之前建立连接。 函数 ldap_init 不连接到 LDAP 服务器。

[in] PortNumber

包含要连接到的 TCP 端口号。 可以通过提供常量 LDAP_PORT来获取默认 LDAP 端口 389。 如果主机名包含端口号,则忽略此参数。

返回值

如果函数成功,它将以指向 LDAP 数据结构的指针的形式返回会话句柄。 如果不再需要,请释放会话句柄,并调用 ldap_unbind

如果函数失败,它将返回 NULL。 使用 LdapGetLastError 函数检索错误代码。

注解

调用 ldap_open 以创建与 LDAP 服务器的连接块。 HostName 可以为 NULL,在这种情况下,运行时会尝试查找默认 LDAP 服务器。 按列出的顺序尝试主机名,并在第一次成功连接后停止。 对于 Active Directory 服务器, DsGetDcName 函数可用于获取服务器的名称,然后可将该名称作为 HostName 参数传递,而不是使用 NULL

如果 HostName 设置为 NULL 或域名,则应用自动重新连接。 如果连接的 DC 在连接的生存期内由于某种原因而停止运行,LDAP 将自动重新连接到指定域中的另一个 DC。 可以使用默认启用 的“LDAP_OPT_AUTO_RECONNECT 会话”选项关闭或打开此行为。

使用 LDAP_OPT_HOST_NAME 时,默认 LDAP 服务器是 Microsoft 特定的选项。 此选项指定默认 LDAP 服务器的主机名,并在 Unicode 或 ANSI 中返回服务器的主机名,具体取决于 分别使用 ldap_get_optionWldap_get_optionA

如果将全局编录端口号作为参数之一传递给 ldap_open ,则为该端口号传递的 HostName 必须是 对 DsGetDcName () 的基础调用的林的名称,才能在企业中正确找到 GC。

ldap_open函数分配 LDAP 数据结构以维护会话的状态数据,并返回此结构的句柄。 在会话过程中将此句柄传递给后续 LDAP 函数调用。

多线程处理:对 ldap_open 的调用是线程安全的。

请注意,ldap_open 被当前 LDAP RFC 严重弃用,因为它会立即打开与域控制器的会话,而不会让调用应用程序有机会配置任何会话选项,例如 (,最重要的是) 与安全相关的会话选项。 建议用户使用 ldap_init 作为初始化 LDAP 会话的首选方法。
 

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 winldap.h
Library Wldap32.lib
DLL Wldap32.dll

请参阅

函数

LdapGetLastError

cldap_open

ldap_init

ldap_unbind