我正在使用python LDAP模块(除此之外)搜索组,并且遇到服务器的大小限制并获得SIZELIMIT_EXCEEDED异常。我尝试过同步和异步搜索,并且两种方式都能解决问题。
您应该能够通过在搜索上设置分页控件来解决此问题,但根据python-ldap文档,尚未为search_ext实现控件。有没有办法在Python中执行此操作?如果python-ldap库不支持它,那么还有另一个Python库吗?
答案 0 :(得分:16)
以下是与python-ldap中的分页相关的一些链接。
答案 1 :(得分:8)
在对python-ldap-dev邮件列表进行一些讨论之后,我可以回答我自己的问题。
页面控件由Python lDAP模块支持,但尚未更新search_ext的文档以显示该文档。 example linked by Gorgapor显示了如何使用ldap.controls.SimplePagedResultsControl来读取页面中的结果。
但是有一个问题。这适用于Microsoft Active Directory服务器,但不适用于OpenLDAP服务器(可能还有其他服务器,例如Sun的服务器)。 LDAP controls RFC关于是否应允许分页控件覆盖服务器的sizelimit设置是不明确的。在ActiveDirectory服务器上,默认情况下,他们可以在OpenLDAP上使用,但我认为有一个服务器设置允许他们使用。
因此,即使您实现了分页控件,也无法保证它将获得您想要的所有对象。 嗟
页面控件也只适用于LDAP v3,但我怀疑有很多v2服务器在使用。