MVC 3无法识别Windows角色(组)?

时间:2011-09-22 17:43:45

标签: windows asp.net-mvc-3 authentication

有没有人遇到MVC无法识别Windows角色的事件?我认为角色转换为Windows中的组,但出于某种原因,当我将用户添加到组时,如果user.IsInRole(“GroupJustAddedTo”)始终返回false,请检入MVC(使用Windows身份验证)。我不知道为什么......在带有Windows身份验证的Server 2003 R2中工作。困惑:〜(???

1 个答案:

答案 0 :(得分:1)

在不知道其他任何事情的情况下,它让我想知道您的MVC是否真的没有连接到您的AD服务器。也许,获取组的用户可能没有足够的权限?只是一些初步的想法。

编辑

我们最终编写了自己的RoleProvider。这是重载的GetRolesForUser代码

public override string[] GetRolesForUser(string userName)
{
    List<string> allRoles = new List<string>();
    PrincipalContext context;
    context = new PrincipalContext(ContextType.Domain, "hlpusd.k12.ca.us", "DC=hlpusd,DC=k12,DC=ca,DC=us");
    UserPrincipal user = UserPrincipal.FindByIdentity(context, userName);
    PrincipalSearchResult<Principal> usergroups = user.GetGroups(); // list of AD groups the user is member of
    IEnumerator<Principal> eGroup = usergroups.GetEnumerator();
    while (eGroup.MoveNext())
    {
        allRoles.Add(eGroup.Current.Name);
    }

    return allRoles.ToArray();
}