2012-12-20 46 views
9

私はSystem.DirectoryServices.AccountManagementを使用してユーザールックアップ機能を提供しています。複数のActive Directoryドメインにわたるユーザーの検索

事業は、いくつかの地域、特定のADドメインがあります:AMR、ユーロ、JPNなど

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"); 
:私はディレクトリ全体をターゲット場合

しかし、それは、地域、特定のドメインの任意のからユーザーを返しません

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

更新

"Active Directoryは仕事を検索する方法" をよく読んで:

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"); 

しかし、非常に遅いです。どのようにパフォーマンスを改善するための提案?

+0

それを見つけました。あなたが私にできるとき、答えを投稿します。 –

+0

あなたはこれを稼働させるために何を投稿してください。 – FMFF

+0

ドメイン文字列とコンテナparamにポート番号を追加すると、私のために動作しました。 – filip

答えて

0

最初のワイルドカードが(*Bloggs*)のクエリは、クエリである属性にタプルインデックスがない限り、処理が遅くなります。 ADのどの属性も、デフォルトでこのセットを持っていません。最初のワイルドカードを使用しない方がよい。

関連する問題