LDAP用户枚举不会返回所有域用户

时间:2010-12-28 14:15:16

标签: c# .net ldap ldap-query

我使用以下代码来获取给定域中所有用户的列表。

DirectoryEntry dirEntry = new DirectoryEntry( "LDAP://domainname", userName, password );
System.DirectoryServices.DirectorySearcher dirSearcher = new System.DirectoryServices.DirectorySearcher( dirEntry );

dirSearcher.Filter = "(&(objectClass=user)(objectCategory=person))";
foreach ( SearchResult resEnt in dirSearcher.FindAll( ) )
{
//Access searchResult
}

但返回的结果是部分的,并不反映域中的所有注册用户。我在这里错过了什么吗?

提前致谢,
巴拉斯。

3 个答案:

答案 0 :(得分:3)

愚蠢的问题,你回来了多少?有可能在1000或2000左右吗?

AD对一个简单查询中返回的搜索结果数量有默认限制。您可以对结果进行分页,或更改限制,但如果您在1000或2000左右获得这将是一个死的赠品。

在这种情况下,Uwe使用外部LDAP浏览器进行测试的答案将显示相同的结果。 (我个人使用LBEApacheDS。LBE是600K且轻量级。

答案 1 :(得分:2)

通常情况下,我使用Softerra LDAP Browser的免费版本搜索这些问题(请务必使用版本2.6,这是免费的,通常仍然足够)。

答案 2 :(得分:2)

听起来你需要将PageSize设置为非零值。优秀的概述here