Ответ 1
Правильный способ в ASP Identity прост как
User.IsInRole("rolename");
С 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)
{
}
Правильный способ в ASP Identity прост как
User.IsInRole("rolename");
Вы можете получить идентификатор пользователя из Identity, а не искать пользователя в базе данных...
var um = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new DbContext()));
var inrole = um.IsInRole(Context.User.Identity.GetUserId(), "Admin");
Предполагая, что вы в ASP.NET, это довольно просто:
if (!Roles.IsUserInRole(User.Identity.Name, "Administrators"))
{
retrun "You are not authorized.";
)
(из http://msdn.microsoft.com/en-us/library/4z6b5d42%28v=vs.110%29.aspx)
это сработало для меня, надеюсь, это поможет...
If HttpContext.Current.User.IsInRole("admin") Then
adminmnu.Visible = True
End If