Вот моя проблема с моим интернет-проектом MVC 4 с использованием проверки подлинности с помощью форм. Допустим, у меня есть отели, и я хочу, чтобы авторизованные пользователи обращались к ним под разными ролями.MVC 4 - RoleProvider для управления полномочиями аутентифицированных пользователей с различными областями
Таким образом, пользователь входит в систему. Затем из выпадающего списка выбирается целевой отель, и безопасность приложения отвечает соответственно.
Мне нужно что-то вроде [Авторизовать (Роли = «Администратор»)], но только в той области отеля.
Мой первый был унаследовать Подход от AuthorizeAttribute и переопределить AuthorizeCore нравится показано в этом thread
Оттуда я мог бы получить HttpContext.Session [ «HotelId»] и запросить таблицу UserRolesInHotel. Тем не менее, у меня должен быть свой собственный ролевой стол со структурой, подобной UserId, RoleId, HotelId. Поэтому SimpleRolePrivider подходит для этой задачи, и я буду вынужден создать CustomeRoleProvider. Методы RoleProvider не обрабатывают дополнительные параметры, поскольку мне нужно, чтобы HotelId добавлял новую роль пользователю.
Для уточнения:
- Пользователь A входит в систему с пользователя/пароль -> OK (SimpleMembershipProvider)
- Аутентифицированный Пользователь A выбирает отель 1 -> Пользователь A является "Администратор" для гостиницы 1.
- Зарегистрированный пользователь изменение в отель 2 -> User A является "Пользователь" в гостинице 2
я могу иметь любое количество отелей.
- Пользователь A -> Hotel 1 -> { "Администратор", "Пользователь"}
- Пользователь A -> Hotel 2 -> { "Пользователь"}
- Пользователь A -> Hotel 3 -> { "Владелец"}
- Пользователь A -> Hotel 4 -> { "Администратор"}
список ролей всегда одинакова.
Я боролся с этой реализацией в течение нескольких дней, и я не мог придумать рациональное решение. Любые тысячи будут высоко оценены.
Спасибо!
Эй, вы когда-нибудь выяснили решение этой проблемы? Я обнаружил, что имею дело с той же проблемой, что и у вас = /. Благодаря! – SaiyanGirl