列出属于AD组的所有用户

时间:2012-04-23 13:56:04

标签: c# .net active-directory active-directory-group

我需要在C#中找到属于特定AD组的用户ID,如果用户是AD组的一部分,则返回true。

我到目前为止Getting users list from an AD Group的内容是:

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;
}

问题是如果某个组的成员是另一个组。作为外部组成员的内部组的任何人都应被视为已授权。

有更好的方法吗?

0 个答案:

没有答案