Для жизни я не могу понять, как просто добавлять роли в мое приложение MVC 5. Это был такой ветер в MVC 4.Использовать роли в ASP.NET MVC 5 Identity 2.0
Таблицы есть из коробки, AspNetRoles
, который имеет идентификатор и имя («Администратор», «Пользователь», и т.д ...) AspNetUsers
, который имеет Id и другие поля пользователя AspNetUserRoles
- эта таблица имеет UserId и RoleId, которая сопоставляется с таблицами выше.
Я хочу, чтобы у меня была возможность проверить, имеет ли подписанный пользователь роль «admin» или просто «пользовательская» роль.
Вот что я пробовал:
if (User.IsInRole("Admin"))
{
//do something
}
Значение всегда возвращается ложью.
Я также попытался:
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var userRole = UserManager.GetRoles(user.GetUserId());
if (userRole[0] == "Admin")
{
// do something
}
Это проливает ошибка: «Индекс был вне диапазона Должно быть неотрицательным и меньше, чем размер коллекции.»
Есть ли простой способ, который может получить роль для текущего зарегистрированного пользователя? Я видел ссылки на использование Role Manager, но мне не удалось заставить это работать. Я считаю, что было для Идентичность 1.0
Благодаря
Пользователь не оставил комментария. Я использую UserManager для проверки: http://stackoverflow.com/questions/23049813/asp-net-identity-2-0-check-if-current-user-is-in-role-isinrole –