Как сделать доступность метода контроллера (mvc) для разных пользователей? Как сделать доступность метода контроллера (mvc) для разных пользователей?
То есть человек авторизовался, определяется его тип admin или user. Админу доступны те методы контроллера которые недоступны обычному пользователю. Как бы это сделать грамотно?
Мне только думается сделать так:
1 Методы контроллера заносят данные о доступности этого метода в переменную класса.
2 В классе определен privat метод проверки данных о доступности вызываемого метода контроллера и типа пользователя. Тип пользователя в SESSION.
3 Этот privat метод вызывается в конструкторе супер-класса контроллера.
В случае если тип пользователя например user а вызывается метод админа, скрипт завершается ошибкой.
По идее, должно работать, и будет безопасно. Но что-то мне подсказывает... что это не совсем правильно. Как лучше сделать?

21 Авг 2019 в 07:08
240 +1
1
Ответы
1

Для ограничения доступа к методам контроллера для разных пользователей в зависимости от их роли (admin или user) существует механизм аутентификации и авторизации веб-приложений.

Лучший способ реализации такой функциональности в MVC-приложении - использовать аутентификацию и авторизацию на уровне фреймворка или библиотеки, которую вы используете. Например, в ASP.NET MVC можно использовать атрибуты Authorize для ограничения доступа к методам контроллера для определенных ролей:

[Authorize(Roles = "admin")]
public ActionResult AdminMethod()
{
// Код метода
}
[Authorize(Roles = "user")]
public ActionResult UserMethod()
{
// Код метода
}

Это позволит автоматически проверять роль пользователя при вызове метода контроллера и, в случае несоответствия его роли требуемой, возвращать ошибку доступа.

Таким образом, рекомендуется использовать встроенные механизмы аутентификации и авторизации, предоставляемые вашим фреймворком или библиотекой, для реализации контроля доступа к методам контроллера в зависимости от роли пользователя.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 436 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир