Привет, мне нужно проверить, находится ли пользователь в одной из ролей, и меня смущают разные версии кода, которые я нашел. Позвольте мне сначала показать вам, что у меня есть на данный момент
_manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>());
var currentUser = _manager.FindById(User.Identity.GetUserId());
if (!_manager.IsInRole(currentUser.Id, "admin"))
{
}
И ApplicationUser
public class ApplicationUser : IdentityUser
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
}
Итак, я хочу проверить, находится ли пользователь в одной из ролей. например админ, контробьютер, суперпользователь и т.д.
Я нашел этот пример, который кажется хорошим, но я должен внести следующие изменения в web.config, чтобы заставить его работать. Мне не нужно было делать это с моим кодом, как сейчас.
roleManager enabled="true"
Я пытаюсь больше узнать о UserManager.IsInRole
, но не нашел много информации об этом. Немного больше читая, я понимаю, что сообщение, которое я нашел, посвящено простому членству.
Поскольку я использую Identity, мне не следует использовать код, который я нашел (относится к ссылке и принятому ответу), так как это будет смешиванием Identity и Simple Membership? Специально я ссылаюсь на эту строку Roles.GetRolesForUser
. Есть ли аналогичный метод для идентификации? Я думаю, что меня смущают разные структуры членства и я не знаю, что такое правильное использование. Я надеюсь, что кто-то может объяснить мне, чтобы понять.
(Мне все еще нужно решение вопроса, который я задал в заголовке, но мне действительно нужно понять =)