Asp.net MVC 5无法获得用户角色

时间:2015-05-07 07:40:11

标签: asp.net asp.net-mvc asp.net-membership asp.net-identity

我试图获取用户角色并对其进行修改。 我已经尝试了很多方法来获得用户角色,但没有任何作用。 有什么遗漏? 我可以获得正确的用户实体,但角色始终为空。 有没有办法正确地做到这一点? 感谢

var user = UserManager.Users.Single(u=>u.Id==id);
var roles = user.Roles;
roles.Add(....)


var user = UserManager.Users.Single(u=>u.Id==id);
user.IsinRole("rolename");

1 个答案:

答案 0 :(得分:1)

您可以通过声明获取它们:

var roles = ((ClaimsIdentity)User.Identity).Claims
            .Where(c => c.Type == ClaimTypes.Role)
            .Select(c => c.Value);

要将用户添加到角色,您可以执行此操作(确保该角色存在于数据库中):

var roleresult = UserManager.AddToRole(currentUser.Id, "RoleName");