2 つのトラスト フォレスト A と B があり、ユーザー C はフォレスト A に属し、グループ D はフォレスト B に属しています。次に、ユーザー C をグループ D に割り当てます。
私の質問は、ユーザー C のすべてのメンバーシップを取得したいということです。C# でそれを行う方法を知っている人はいますか?
いくつかの .net API を試しましたが、ユーザーの現在のドメインのメンバーシップを取得するだけです。「メンバー」プロパティにメンバーシップが保存されていることは知っていますが、これを実現するには、トラスト フォレスト内のすべてのグループを検索し、「メンバー」プロパティを確認する必要がありますか?
以下のテスト プログラムは、トラスト フォレストのメンバーシップを取得しようとしたものです。ドメイン "a.com" はフォレスト A のもので、ドメイン "b.com" はフォレスト B のものです。
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "a.com"))
{
using (PrincipalContext ctx2 = new PrincipalContext(ContextType.Domain, "b.com"))
{
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "C");
var groups1 = user.GetGroups(ctx); // only get the memebership of a.com
var groups2 = user.GetGroups(ctx2); // cannot get the membership of b.com
}
}
ありがとう。