【发布时间】:2016-10-24 21:05:09
【问题描述】:
在我的一生中,我无法弄清楚如何简单地将角色添加到我的 MVC 5 应用程序中。这在 MVC 4 中真是轻而易举。
桌子开箱即用,
AspNetRoles,具有 Id 和名称(“Admin”、“User”等...)
AspNetUsers,它有一个 Id 和其他用户字段
AspNetUserRoles - 这个表有一个 UserId 和 RoleId,映射到上面的表。
我希望能够检查登录用户是否具有“管理员”角色或只是“用户”角色。
这是我尝试过的:
if (User.IsInRole("Admin"))
{
//do something
}
该值总是返回 false。
我也试过了:
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var userRole = UserManager.GetRoles(user.GetUserId());
if (userRole[0] == "Admin")
{
// do something
}
这会引发错误:
"索引超出范围。必须为非负数且小于大小 集合。”
有没有简单的方法可以获取当前登录用户的角色?我已经看到有关使用角色管理器的参考,但我无法让它发挥作用。我相信那是针对 Identity 1.0
谢谢
【问题讨论】:
-
用户已登录?我使用 UserManager 来检查:stackoverflow.com/questions/23049813/…
标签: asp.net asp.net-mvc-5 asp.net-identity claims-based-identity asp.net-identity-2