マルチドメイン Active Directory 環境があり、DOMAIN\username に基づいてユーザーを検索する必要があります。
次のコードは、SID でユーザーを見つけるのに最適です。
DirectorySearcher directorySearcher = new DirectorySearcher(new DirectoryEntry(
"GC://" + Forest.GetCurrentForest().Name));
directorySearcher.Filter =
"(&" +
(&(objectCategory=person)(objectClass=user)) +
"(objectSid=" + this.SID + "))";
var result = directorySearcher.FindOne();
しかし今、DOMAIN\username しかない状況に陥っています。
このためのフィルターには何が入りますか?
私が検討した 1 つのアプローチは、グローバル カタログではなく特定のドメインに接続し、修飾されていない SAMAccountName で検索することです。しかし、私の問題は、DOMAIN から DC=Domain,DC=Org または domain.org に移動する方法がわからないことです。
Active Directory ユーザーとコンピューターにいるとき、DOMAIN\username でディレクトリ全体を検索しても問題ないようです。舞台裏で何が起こっているのですか?