使用ASP.NET Identity 2.0,您如何检查当前登录的用户是否在角色中?我正在使用以下内容,但想知道是否有更高效的内容。
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DbContext()));
var au = um.FindByEmail(Context.User.Identity.GetUserName());
var inrole = um.IsInRole(au.Id, "Admin");
if (inrole)
{
}
答案 0 :(得分:31)
ASP身份的正确方法就像
一样简单User.IsInRole("rolename");
答案 1 :(得分:7)
假设您使用的是ASP.NET,那很简单:
if (!Roles.IsUserInRole(User.Identity.Name, "Administrators"))
{
return "You are not authorized to access this page.";
)
(来自http://msdn.microsoft.com/en-us/library/4z6b5d42%28v=vs.110%29.aspx)
答案 2 :(得分:6)
您可以从Identity获取用户ID,而不必在数据库中查找用户...
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DbContext()));
var inrole = um.IsInRole(Context.User.Identity.GetUserId(), "Admin");
答案 3 :(得分:3)
这对我有用,希望这有帮助...
g++ maps.cpp