Превышен предел LDAP - предупреждение о вылове - PullRequest
1 голос
/ 29 июля 2011

Я получаю эту ошибку при использовании LDAP, я знаю, что мое максимальное число составляет 25.

Warning: ldap_search() [function.ldap-search]: Partial search results returned: Sizelimit exceeded in

Как я могу поймать это и вывести частичные результаты и показать, что былико многим результатам.Или я могу просто показать, что было много результатов?

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 29 июля 2011

Сервер каталогов накладывает ограничение на:

  • количество объектов, возвращаемых из поиска
  • количество времени, потраченное на поиск
  • количество записей для проверки при создании списка кандидатов

В зависимости от сервера ограничения могут быть наложены глобальной конфигурацией, политикой подключения клиента или на основе идентификатора аутентификации. Результат в поисковом ответе указывает, что часть результатов была возвращена клиенту. Клиент может (и должен) устанавливать ограничение размера и ограничение времени как часть поискового запроса, но эти ограничения, известные как ограничения, запрашиваемые клиентом, не могут переопределять ограничения сервера.

Правильно закодированный API будет возвращать записи, не превышающие количество записей. Другими словами, если есть 3 записи, которые соответствуют параметрам поиска, клиент устанавливает ограничение размера запрошенного клиентом 2, сервер возвращает 2 записи (в любом порядке записи LDAP не упорядочены, то есть упорядочение не повторяется) и установите код результата поиска на «превышение размера».

Хотя может быть общеизвестно, что AD использует 1000, приложения не должны быть закодированы с учетом поставщика, версии или конфигурации сервера. Это плохо, а не профессионально, и в результате получается хрупкий, не поддерживаемый код. Кодируйте свои приложения, так как сервер, к которому вы подключаетесь, является универсальным сервером LDAP, который полностью соответствует стандартам Директората LDAP в IETF.

Моя запись в блоге содержит некоторые обсуждения поисковых запросов и ответов на них, и я также создал статью LDAP: Programming Practices .

0 голосов
/ 12 апреля 2014
$resource = ldap_search( $link_identifier, $base_dn, $filter );
if ( ldap_errno( $link_identifier ) === 4 )
    echo 'Partial search results returned';

или

$resource = ldap_search( $link_identifier, $base_dn, $filter );
if ( strtoupper( ldap_error( $link_identifier ) ) === 'SIZE LIMIT EXCEEDED' )
    echo 'Partial search results returned';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...