Domain Admins组出现IsUserInRole问题(不是配置问题)

时间:2017-02-20 19:29:36

标签: c# .net asp.net-roles

我认真地开始认为,就发展努力而言,我工作的地方受到了诅咒,我一直遇到非常奇怪的问题。

我正在使用Roles.IsUserInRole(@"Domain\Domain Admins")来检查用户是否是域管理员。

出于某种原因,虽然我已经参与其中多年,但它并不认识我。我一开始认为可能与空间有关,但Roles.IsUserInRole(@"Domain\Domain Users")效果很好。两个组都位于同一个AD OU中。

我是否会失去理智,或者“Domain Admins”小组真的有什么特别之处吗?

编辑:

        List<GroupPrincipal> result = new List<GroupPrincipal>();

        PrincipalContext yourDomain = new PrincipalContext(ContextType.Domain);

        UserPrincipal user = UserPrincipal.FindByIdentity(yourDomain, User.Identity.Name);

        if (user != null)
        {
            PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();

            foreach (Principal p in groups)
            {
                if (p is GroupPrincipal)
                {
                    result.Add((GroupPrincipal)p);
                }
            }
        }

        var myRoles = Roles.GetRolesForUser(User.Identity.Name);

我使用上面的代码来验证组成员资格。 Domain Admins列在result变量中,但不在myRoles

1 个答案:

答案 0 :(得分:1)

事实证明,这与提升的权利有关。

请参阅:https://www.reddit.com/r/csharp/comments/4cvr0p/domain_admin_is_not_showing_up_in_my_role_list_im/

(不解释一个解决方法,只是一个原因)