В нашем приложении есть пользователи, которые сопоставлены с компаниями.Когда пользователь входит в систему и начинает делать запросы, мне нужен способ проверить, отображается ли этот пользователь в компании для доступа к ресурсам компании.
У меня была идея создать целый контроллер для управления всем этим, но кто-то упомянул ActionFilters как гораздо лучший и более чистый вариант, я должен согласиться, посмотрев его.
Идея состоит в том, чтобы настроить контроллер следующим образом:
controller - action - CompanyId - ReportId
Таким образом, любой запрос на получение root-прав системы будет просто просматриваться, если есть какие-либо компании, сопоставленные этому зарегистрированному пользователю.
Но еслизапрос включал CompanyId, после чего они переходили на страницу учетной записи «портала» этой компании.Это действительно любой запрос, который включает CompanyId, где я хочу, чтобы actionFilter определил, разрешен ли этому пользователю доступ.
- Запрос приходит ...
- В запросе указан CompanyId!
- ActionFilter:
Искать в дБдля всех пользователей, назначенных этому CompanyId.Текущий пользователь в этом списке?Нет?= выкинуть.
Я пытался набрать пример кода, но система сказала мне вручную делать отступ каждой строки на 4 пробела, я все равно делал это из памяти, так что понятия не имел, насколько это было бы полезно в любом случае.