web-dev-qa-db-ja.com

Active Directoryで姓と名に基づいてユーザーを検索するにはどうすればよいですか?

.NETのsnを使用して、姓(givenName)と名(DirectorySearcher)でADのユーザーを検索しようとしています。

次のコードでsAMAccountnameに基づくユーザーを見つけることができます。

 DirectorySearcher searcher1 = new DirectorySearcher(entry);
 searcher1.Filter = string.Format("(&(objectCategory=person)(objectClass=user)(SAMAccountname={0}))",aLogin);

 SearchResult results1;
 results1 = searcher1.FindOne();

しかし、givenNamesnでそれを実行しようとすると、次のようになります。

DirectorySearcher searcher1 = new DirectorySearcher(entry);
searcher1.Filter = string.Format("(&(objectCategory=person)(objectClass=user)(givenname={0})(sn={1})", aName, aSName);

SearchResultCollection results1;
results1 = searcher1.FindAll();

それは機能しません。メッセージに「無効なフィルター」と表示されます。 givenNameおよびsnに基づいてフィルタリングできませんか?

どうすればこれを達成できますか?

18
bAN

フィルターに閉じ括弧がありません。試してください:

searcher1.Filter = string.Format("(&(objectCategory=person)(objectClass=user)(givenname={0})(sn={1}))", aName, aSName);
11
Matt

間違いなくこれはエラーです。

)を忘れた

0
bAN