Поделиться через


функция ldap_search_extA (winldap.h)

Функция ldap_search_ext выполняет поиск в каталоге LDAP и возвращает запрошенный набор атрибутов для каждой соответствующей записи.

Синтаксис

WINLDAPAPI ULONG LDAPAPI ldap_search_extA(
  [in]  LDAP          *ld,
  [in]  const PSTR    base,
  [in]  ULONG         scope,
  [in]  const 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

Идентификатор сообщения запроса.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет 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 передает идентификатор сообщения вызывающему объекту в качестве параметра при успешном возвращении операции. Вызовите ldap_result с идентификатором сообщения, чтобы получить результат операции.

Клиентское приложение LDAP, которое должно управлять скоростью, с которой возвращаются результаты, может указать поисковый запрос, чтобы предоставить элемент управления страничными результатами с размером, равным требуемому размеру страницы, а файл cookie — строку нулевой длины. Указанный размер страницы может быть больше нуля и меньше значения SizeLimit , указанного в поисковом запросе.

Если размер страницы больше или равен значению SizeLimit , описанному в разделе Параметры сеанса, сервер должен игнорировать элемент управления, так как запрос может быть выполнен на одной странице. Если сервер не поддерживает этот элемент управления, сервер должен вернуть ошибку неподдерживаемого критического расширения, если клиент запросил его как критическое, в противном случае сервер должен игнорировать элемент управления. В оставшейся части этого раздела предполагается, что сервер не игнорирует выгружаемую клиентом элемент управления результатами.

Клиент отправляет серверу запрос на поиск с простым элементом управления страничными результатами, а также пустой предыдущий ключ перечисления, также известный как "файл cookie", и начальный размер страницы. Затем сервер возвращает количество записей, указанное размером страницы, а также файл cookie, выданный при следующем запросе клиента, чтобы получить следующую страницу результатов. Затем клиент выполняет поиск с включенным файлом cookie, при необходимости сбрасывая размер страницы. Затем сервер возвращает результаты до указанного количества записей. Чтобы указать функции возвращать результаты напрямую, используйте синхронную подпрограмму ldap_search_ext_s.

Многопоточность: вызовы ldap_search_ext потокобезопасны.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header winldap.h
Библиотека Wldap32.lib
DLL Wldap32.dll

См. также раздел

Уведомления об изменениях в Active Directory

Расширенные элементы управления

Функции

Параметры сеанса

Использование элементов управления

ldap_result

ldap_search

ldap_search_ext_s