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


функция 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

Указатель на строку, завершающуюся нулевым значением, которая содержит различающееся имя записи, с которой начинается поиск.

[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 value , описанному в разделе Параметры сеанса, сервер должен игнорировать элемент управления , так как запрос может быть удовлетворен на одной странице. Если сервер не поддерживает этот элемент управления, сервер должен вернуть ошибку неподдерживаемого критического расширения, если клиент запросил его как критическое, в противном случае сервер должен игнорировать элемент управления. В оставшейся части этого раздела предполагается, что сервер не игнорирует выгружаемую клиентом элемент управления результатами.

Клиент отправляет серверу поисковый запрос с простым элементом управления страничными результатами, а также пустой предыдущий ключ перечисления, также известный как "файл 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