ldap_search_ext 函数 (winldap.h)
ldap_search_ext 函数搜索 LDAP 目录,并为每个匹配条目返回请求的属性集。
语法
WINLDAPAPI ULONG LDAPAPI ldap_search_ext(
[in] LDAP *ld,
[in] PSTR base,
[in] ULONG scope,
[in] PSTR filter,
[in] PZPSTR attrs,
[in] ULONG attrsonly,
[in] PLDAPControlA *ServerControls,
[in] PLDAPControlA *ClientControls,
[in] ULONG TimeLimit,
[in] ULONG SizeLimit,
[out] ULONG *MessageNumber
);
参数
[in] ld
会话句柄。
[in] base
指向以 null 结尾的字符串的指针,该字符串包含要开始搜索的条目的可分辨名称。
[in] scope
指定以下值之一来指示搜索范围。
LDAP_SCOPE_BASE
仅搜索基本条目。
LDAP_SCOPE_ONELEVEL
搜索基础条目下方第一级的所有条目,不包括基条目。
LDAP_SCOPE_SUBTREE
搜索基项和基下方树中的所有条目。
[in] filter
指向以 null 结尾的字符串的指针,该字符串指定搜索筛选器。 有关详细信息,请参阅 搜索筛选器语法。
[in] attrs
以 null 结尾的字符串数组,这些字符串指示要为每个匹配项返回哪些属性。 若要检索所有可用属性,请传递 NULL。
[in] attrsonly
一个布尔值,如果同时返回属性类型和值,则应为零;如果只返回类型,则为非零值。
[in] ServerControls
LDAP 服务器控件的列表。
[in] ClientControls
客户端控件的列表。
[in] TimeLimit
指定本地搜索超时值(以秒为单位)和在搜索请求中发送到服务器的操作时间限制。
[in] SizeLimit
要从搜索返回的条目数限制。 值为零表示没有限制。
[out] MessageNumber
请求消息 ID。
返回值
如果函数成功,则 返回值LDAP_SUCCESS。
如果该函数失败,它将返回错误代码。 有关详细信息,请参阅 返回值。
注解
ldap_search_ext 函数启动异步搜索操作。 ldap_search_ext的参数和效果包括ldap_search的参数和效果。 扩展函数包括其他参数,用于支持客户端和服务器控件以及线程安全,以及为每个搜索操作指定大小和时间限制。
将 ldap_set_option 函数与 ld 会话句柄结合使用,设置确定如何执行搜索的 LDAP_OPT_DEREF 选项。 有关详细信息,请参阅 会话选项。 将忽略另外两个会话选项 (LDAP_OPT_SIZELIMIT 和 LDAP_OPT_TIMELIMIT),取而代之的是此函数中的 SizeLimit 和 TimeLimit 参数。
如果操作成功, ldap_search_ext 操作成功返回时将消息 ID 作为参数传递给调用方。 使用消息 ID 调用 ldap_result 以获取操作的结果。
必须控制结果返回速率的 LDAP 客户端应用程序可以指定搜索请求来提供分页结果控件,并将大小设置为所需页面大小,cookie 设置为零长度字符串。 指定的页面大小可能大于零,并且小于搜索请求中指定的 SizeLimit 值。
如果页面大小大于或等于会话选项中所述的 SizeLimit 值选项,则服务器应忽略该控件,因为可以在单个页面中满足请求。 如果服务器不支持此控件,则服务器必须返回错误“不受支持的严重扩展”(如果客户端请求为严重扩展),否则服务器应忽略该控件。 本部分的其余部分假定服务器不会忽略客户端的分页结果控件。
客户端向服务器发送一个包含简单分页结果控件的搜索请求,以及一个空的上一个枚举键(也称为“cookie”)和初始页面大小。 然后,服务器返回由页面大小指定的条目数,并返回在下一个客户端请求中发出的 Cookie 以获取下一页结果。 然后,客户端发出搜索,其中包含 Cookie,并选择性地重置页面大小。 然后,服务器通过返回结果进行响应,最多返回指定数量的条目。 若要指示函数直接返回结果,请使用同步例程 ldap_search_ext_s。
多线程处理:对 ldap_search_ext 的调用是线程安全的。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
目标平台 | Windows |
标头 | winldap.h |
Library | Wldap32.lib |
DLL | Wldap32.dll |