ASP.NET MVC Роли и безопасность
Предположим, что это мой метод действия SampleController
public ActionResult AdminView()
{
return View()
}
Если вы хотите, чтобы этот метод контроллера вызывался, если вошедший в систему пользователь принадлежит роли администратора, в противном случае этот вызов метода должен быть заблокирован, и пользователь должен получить какую-то пользовательскую страницу ошибки неавторизованного доступа.
В моем веб-приложении asp .net mvc, когда пользователь входит в систему, я сохраняю роль пользователя в сеансе в виде строки. И всякий раз, когда возникает необходимость проверить роль пользователя, я сравниваю значение, сохраненное в сеансе, с константой, скажем, «ADMIN_ROLE». Но я пишу этот фрагмент кода для проверки роли пользователя практически в каждом методе действия контроллера, а затем либо возвращаю соответствующее представление для пользователя, либо представление страницы неавторизованного доступа, если роль пользователя ограничена для метода действия контроллера.
Я погуглил и прочитал, что мы можем использовать что-то вроде этого.
[Authorize(Roles="admin")]
public ActionResult AdminView()
{
return View()
}
Но я не уверен, как работает ключевое слово Authorize and Roles. Как при установке Roles = "Admin" будет полезна проверка строки моей роли пользователя, хранящейся в сеансе, или как я могу перенаправить пользователя на неавторизованную страницу, если роль не соответствует роли, помеченной для метода действия.