2

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

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
}

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

在此先感谢,
巴拉特。

4

3 回答 3

3

给你一个愚蠢的问题,有多少被退回?有没有可能在 1000 或 2000 左右?

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

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

于 2010-12-28T14:42:24.007 回答
2

通常,我使用免费版本的Softerra LDAP 浏览器来寻找这些问题(一定要使用免费的 2.6 版,而且通常仍然足够)。

于 2010-12-28T14:27:25.593 回答
2

听起来您需要将 PageSize 设置为非零值。这里有很好的概述。

于 2010-12-28T15:10:27.363 回答