12

System.DirectoryServices.AccountManagementを使用して、ユーザールックアップ機能を提供しています。

このビジネスには、AMR、EUR、JPNなどの地域固有のADドメインがいくつかあります。

以下はEURドメインで機能しますが、他のドメインからのユーザーを(当然のことながら)返しません。

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=eur,DC=mycorp,DC=com");

var query = new UserPrincipal(GetContext());

query.Name = "*Bloggs*";

var users = new PrincipalSearcher(query).FindAll().ToList();

ただし、ディレクトリ全体をターゲットにすると、リージョン固有のドメインのいずれからもユーザーが返されません。

var context = new PrincipalContext(ContextType.Domain, "mycorp.com", "DC=mycorp,DC=com");

ディレクトリ全体を検索するにはどうすればよいですか?

アップデート

「ActiveDirectory検索のしくみ」を読んでください。

http://technet.microsoft.com/en-us/library/cc755809(v=ws.10).aspx

サーバー名にポート3268の接尾辞を付けると、グローバルカタログが検索されます。

var context = new PrincipalContext(ContextType.Domain, "mycorp.com:3268", "DC=mycorp,DC=com");

しかし、それは非常に、非常に遅いです。パフォーマンスを改善する方法について何か提案はありますか?

4

1 に答える 1