В LDAP: LDAP-сервер.ПОТРЕБЛЕНИЯ SIZELIMIT ПРЕВЫСИЛ
Я получаю ldap.Ошибка SIZELIMIT_EXCEEDED при запуске этого кода:
import ldap
url = 'ldap://<domain>:389'
binddn = 'cn=<username> readonly,cn=users,dc=tnc,dc=org'
password = '<password>'
conn = ldap.initialize(url)
conn.simple_bind_s(binddn,password)
base_dn = "ou=People,dc=tnc,dc=org"
filter = '(objectClass=*)'
attrs = ['sn']
conn.search_s( base_dn, ldap.SCOPE_SUBTREE, filter, attrs )
где мой настоящий логин, мой пароль, и домен.
Я не понимаю, почему это. Кто-нибудь может пролить свет?
спасибо! :) Эрик!--2-->
5 ответов
руководство:http://www.python-ldap.org/doc/html/ldap.html
исключение
ldap
.SIZELIMIT_EXCEEDED
Превышен лимит размера LDAP. Этот может быть из-заsizelimit
конфигурация на сервере LDAP.
Я думаю, что ваш лучший выбор здесь, чтобы ограничить sizelimit
на сообщение, которое вы получите от сервера. Вы можете сделать это, установив атрибут LDAPObject.sizelimit
(устарело) или использование sizelimit параметр при использовании search_ext()
вы также должны убедиться, что ваша привязка была действительно успешной...
фильтр, который вы предоставили (objectClass=*
) является наличие фильтра. В этом случае он ограничивает результаты запроса на поиск объектами в каталоге и под базовым объектом, который вы предоставили , - это каждый объект под базовым объектом, так как каждый объект имеет по крайней мере один objectClass
. Ограничьте поиск, используя более ограничительный фильтр, или более узкую область, или нижний базовый объект, или все три. Дополнительные сведения по теме поискового запроса см. В разделе С помощью ldapsearch и LDAP: практика программирования.
администраторы сервера каталогов могут налагать общесерверное ограничение на записи, которые могут быть возвращены клиентам LDAP, они известны как сервер-наложенный предельный размер. Существует ограничение по времени, которое следует тем же правилам.
клиенты LDAP всегда должны предоставлять ограничение размера и ограничение по времени с запросом поиска, эти ограничения, известные как клиент-просил пределы не удается переопределить ограничения, наложенные сервером, однако.
смотрите здесь что делать, когда вы получаете эту ошибку:
как получить больше результатов поиска, чем размер сервера с Python LDAP?
для этого необходимо использовать поиск по страницам. Размер страницы будет зависеть от вашего сервера ldap, 1000 будет работать для Active Directory.
посмотреть http://google-apps-for-your-domain-ldap-sync.googlecode.com/svn/trunk/ldap_ctxt.py пример
Active Directory по умолчанию возвращает максимум 1000 результатов. Что раздражает, так это то, что вместо возврата 1000 с соответствующим кодом ошибки он, похоже, отправляет код ошибки без данных.
eDirectory начинается без значения по умолчанию и полностью conifgurable для того, что вам нравится.
другие каталоги обрабатывают его по-разному. (Отредактируйте и добавьте, если знаете).