我正在使用groovyldap进行LDAP搜索,搜索返回我正在寻找的组,但只返回该组的5000名成员:
def getGroupMembers() {
def ldap = LDAP.newInstance(connectionInformation.hostname, connectionInformation.user, connectionInformation.password)
def result = connection.search("CN=mygroup", "OU=foo,DC=bar,DC=blech", SearchScope.SUB)
def members = result["member;range=0-4999"]
members = members[0]
}
是的,实际上返回的字段为“member; range = 0-4999”,而“members”数组中有5000个元素。我在LDAP代码中找不到任何设置来启用返回所有成员,但认为我应该能够获取所有结果似乎是合乎逻辑的。
答案 0 :(得分:1)
Microsoft Active Directory实现LDAP policies是使用queryPolicy类的对象实现的。
出现您遇到的那个是MaxValRange,它是检索条目的多值属性时返回的值的数量。
在Microsoft Active Directory 2008中(我稍后假设,这是硬编码的,虽然它可以修改,但它没有效果。)
如果属性的数量超过MaxValRange值指定的值数,则可以使用LDAP_SERVER_RANGE_OPTION_OID“Control”来检索超过MaxValRange值的值。
答案 1 :(得分:0)
我有两个可能的答案。 (对不起,自从我使用LDAP / ActiveDirectory以来已经有一段时间了。)
在groovyldap中如何做到这一点(不幸的是,这是读者的练习,但我已经用nodeldap完成了。我认为它会发出page
事件(?)因为我已经有一段时间了这样做了。