代码之家  ›  专栏  ›  技术社区  ›  Dave Kirby

如何获得比使用python ldap的服务器sizelimit更多的搜索结果?

  •  11
  • Dave Kirby  · 技术社区  · 14 年前

    我正在使用 python LDAP 模块到(除其他外)搜索组,并且正在进入服务器的大小限制,并获得size limit_exceeded异常。我尝试了同步和异步搜索,并从两个方面解决了问题。

    您应该能够通过在搜索中设置分页控件来解决这个问题,但是根据python的说法,ldap docs控件还没有为search_ext实现。有没有在python中实现这一点的方法?如果python ldap库不支持它,是否还有其他的python库支持它?

    2 回复  |  直到 14 年前
        2
  •  8
  •   Dave Kirby    14 年前

    在讨论了python ldap dev邮件列表之后,我可以回答我自己的问题。

    python ldap模块支持页面控件,但没有更新文档以显示搜索结果。这个 example linked by Gorgapor 显示如何使用ldap.controls.simplePagedResultsControl在页面中读取结果。

    然而,有一个很好的发现。这将适用于Microsoft Active Directory服务器,但不适用于OpenLDAP服务器(可能还有其他服务器,如Sun服务器)。这个 LDAP controls RFC 对于是否允许分页控件重写服务器的sizelimit设置不明确。在ActiveDirectory服务器上,默认情况下它们可以,而在OpenLDAP上则不能,但我认为有一个服务器设置允许它们这样做。

    因此,即使您实现了分页控件,仍然不能保证它将获得您想要的所有对象。 叹息

    另外,分页控件仅在LDAP v3中可用,但我怀疑有许多v2服务器在使用中。