GetAuthorizationGroups返回多个组比我的用户是(GetAuthorization

2019-10-18 17:30发布

我发现这个帖子得到了用户的安全组。

我有,所以它看起来像这样改变了一点:

public List<GroupPrincipal> GetGroups(string userName, string userPassword, string userDomain)
    {
        List<GroupPrincipal> result = new List<GroupPrincipal>();

        // establish domain context
        PrincipalContext yourDomain = new PrincipalContext(ContextType.Domain, userDomain, userName, userPassword);

        // find your user
        UserPrincipal user = UserPrincipal.FindByIdentity(yourDomain, IdentityType.SamAccountName, userName);

        // if found - grab its groups
        if (user != null)
        {
            PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();

            // iterate over all groups
            foreach (Principal p in groups)
            {
                // make sure to add only group principals
                if (p is GroupPrincipal)
                {
                    result.Add((GroupPrincipal)p);
                }
            }
        }

        return result;
    }

Unfortunately我现在让每一个安全组在广告中而非仅仅用户在我的用户是10组但它返回71.我必须提交用户名称和密码,或否则我不会允许查找组。 这是一个不同的域管理员帐户,所以我不能使用当前的凭据。

如果您需要更多信息,请让我知道。

问候和感谢提前IG

Answer 1:

是否有机会,10组是其他组的成员? 根据该文件 :

UserPrincipal.GetAuthorizationGroups方法

该方法递归地搜索所有的组,并返回其中用户是其成员的组。 返回的集合也可以包括系统会考虑用户的授权目的的成员其他组。



文章来源: GetAuthorizationGroups returns more groups than my user is in