1

C# で特定の AD グループの一部であるユーザー ID を検索する方法が必要です。ユーザーが AD グループの一部である場合は true を返します。

ADグループからユーザーリストを取得することからこれまでに得たものは次のとおりです。

private Boolean IsMemberPartOfGroup(String groupName)
{
    var found = false;
    var ctx = new PrincipalContext(ContextType.Domain);  // fetch your group 
    var group = GroupPrincipal.FindByIdentity(ctx, groupName);  // enumerate over the group's members 
    foreach(var p in group.Members)
    {
        if (String.CompareOrdinal("group", p.StructuralObjectClass) == 0)
        {
            var g = p as GroupPrincipal;
            this.IsMemberPartOfGroup(g);
        }
        else if(p.Guid == UserPrincipal.Current.Guid)
        {
            found = true;
            break;
        }
    }
    return found;
}

問題は、グループのメンバーが別のグループである場合です。外側のグループのメンバーである内側のグループの一部であるすべての人は、許可されていると見なされます。

これを行うより良い方法はありますか?

4

0 に答える 0