テストActiveDirectoryを実行していて、LDAPを使用してクエリを実行しようとしています。識別名が空のsearchrequestオブジェクトを作成しました。このフィルターは、「オブジェクトが存在しません」というメッセージを含むnoSuchObjectエラーコードをスローします。これはテストADからのみ取得しています。会社の本番ADを使用している場合、例外は発生せず、ヒットなしの応答のみです。同様の動作を確認するには、テストADで何を変更する必要がありますか?
1630 次
3 に答える
0
他の答えをありがとう。接続にDCポート389の代わりにGCポート3268を使用して、問題を解決しました。
于 2011-07-06T20:31:19.413 に答える
0
および「例によるクエリ」プリンシパルを使用PrincipalSearcher
して、次の検索を実行できます。
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a UserPrincipal
// and with specified last name (surname)
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.Surname = "Willis";
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
まだ読んでいない場合は、MSDNの記事「.NETFramework3.5でのディレクトリセキュリティプリンシパルの管理」を絶対に読んでください。System.DirectoryServices.AccountManagement
もちろん、必要に応じて、作成する「例によるクエリ」ユーザープリンシパルに他のプロパティを指定することもできます。
Surname
(または姓)DisplayName
(通常:名+スペース+姓)SAM Account Name
-Windows/ADアカウント名User Principal Name
-「username@yourcompany.com」スタイル名
の任意のプロパティを指定して、UserPrincipal
それらをの「例によるクエリ」として使用できますPrincipalSearcher
。
于 2011-07-06T04:50:49.923 に答える
0
@marc_sはあなたに検索の方法を与えることによって答えました
あなたの質問に戻って、ただ思い出してください:
LDAP検索は
- 検索の開始を要求するうなずき(この場合はOUのDN)
- 検索範囲(ベース、ワンレベル、サブツリー)
- 検索のフィルター((objectClass = group))
- 取得する属性
あなたの場合、ADSIレイヤーがデフォルトのドメインを見つけることができるときに機能します。したがって、実際のLDAP-SEARCH要求を作成し、おそらく資格情報も与える必要があると思います。
于 2011-07-06T15:44:54.223 に答える