【发布时间】:2013-11-10 11:00:15
【问题描述】:
如何在 mvc 5 中找到登录用户的角色?
我通过这段代码创建了用户
private bool AddUserAndRole()
{
IdentityResult ir;
var rm = new RoleManager<IdentityRole>
(new RoleStore<IdentityRole>(new ApplicationDbContext()));
ir = rm.Create(new IdentityRole("admin"));
var user = new ApplicationUser() { UserName = "Admin" };
var result = UserManager.Create(user, "somepassword");
UserManager.AddToRole(user.Id, "admin");
return true;
}
在我由该用户登录网站后。如何在控制器中检查该用户是否具有角色 ==“管理员”?我发现只有一种看起来不太快的方法。
var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
var role = rm.FindByName("admin");
bool result = User.IsInRole(role.Name); //true
我们还有其他方法吗?
【问题讨论】:
-
使用 Alex 的回答,或者如果您检查是否应允许用户进入控制器/网页,请使用控制器上方的 [Authorize(Roles = "admin")]。
标签: c# authentication asp.net-mvc-5 asp.net-identity