kid-programmer
@kid-programmer

ASP MVC 5. Как сделать переключение ролей у пользователя в зависимости от того, какую группу он выберет?

Успользую ASP MVC 5, стоит задача сделать переключение ролей у пользователя в зависимости от того, какую группу он выберет. Например есть группа А и группа Б, в каждой группе свои новости, комментарии к новостям итд. Например в группе А у пользователя есть права на правку новости а в группе Б нет, пользоватеь может свободно переключатся между группами. В зависимости от токого какую он выберет у него меняются роли. Подскажите пожалуйста в какую сторону копать, как сделать? Создать таблицу где будет храница инфа о ролях пользователя и группы id-id_пользователя-id_группы-id_роли и потом при выборе группы удалять-вставлять нужные роли в стандартной таблице OWIN Forms authentication.
  • Вопрос задан
  • 4071 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Kokcuk
Не претендую на истину в последней инстанции, но я недавно эту задачу так решал:
В базе завел сущности
1) page {controller, action},
2) userrole {pages}
3) user {userroles}
Создаем страницу или автоматически на основе контроллеров этот список билдим, а не в базе храним, создаем роль, присваиваем роли страницы и соответственно юзеру даем разные роли.
Далее делаем свой атриубут и наследуемся от AuthorizeAttribute, оверрайдим AuthorizeCore, внутри получаем через httpContext.Request.RequestContext.RouteData имя запрашиваемого контроллера и метода, httpContext.User.Identity.Name получаем имя юзера, ну а дальше дело техники, получаем его роли, страницы и смотрим пускать или нет.
атрибут можно писать как над методами, так и над всем контроллером.
Ответ написан
Комментировать
aen
@aen
Keep calm and 'use strict';
Роль пользователя - это атрибут пользователя, потому она должна лежать в таблице с прочими данными пользователя.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Монополия Санкт-Петербург
от 87 000 до 87 000 ₽
Enqo Москва
от 200 000 ₽
03 мая 2024, в 18:59
2500 руб./за проект
03 мая 2024, в 18:52
15000 руб./за проект