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 には、1 つの単純なクエリで返される検索結果の数にデフォルトの制限があります。結果をページングしたり、制限を変更したりできますが、1000 または 2000 前後で正しく取得している場合、それは完全な景品になります。

その場合、外部 LDAP ブラウザーでテストする Uwe の回答は同じ結果を示します。(私は個人的にLBEまたはApacheDSを使用しています。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 に答える