【发布时间】:2015-08-02 20:25:09
【问题描述】:
我在 mvc 5 网站中使用 Identity 2 进行身份验证。在我看来,我想检查用户的角色:
@if(User.IsInRole("Customers"))
{
@*do something*@
}
但这总是返回 false,我已经在 web 配置中设置了 <roleManager enabled="true" />。
请帮忙。
【问题讨论】:
-
您的数据库是否表明用户确实在角色中,并且角色名称是否完全正确?用户是否确实已登录? IE...如果您将
[Authorize]添加到控制器,操作会加载吗? -
角色的名字是正确的,它存在于该用户的数据库中。
-
如果您将
[Authorize(Roles = "Customers")]添加到您的操作中,该操作会加载吗?您是如何将用户添加到角色的? -
不,它不会加载。角色添加到后端: ApplicationUser user = UserManager.FindById(userId); UserManager.AddToRole(user.Id, roleName);
-
嗯很奇怪。我必须承认,在您发布此问题之前,我不知道这种方法存在。
标签: asp.net-mvc asp.net-identity roles