Я установил стандартную систему аутентификации в приложении ASP.NET Core.
Пользователи, роли, RoleClaims (действующие как разрешения)
В Startup.cs я создаю политику для каждой роли и каждого разрешения. Предполагая, что это дало бы мне полную гибкость в моих представлениях, чтобы я мог сказать, что я хочу, чтобы эта кнопка показывала, является ли пользователь частью роли, которая имеет требование DeleteCustomer, или если пользователь принадлежит роли суперпользователя.
Как я могу выполнить условие ИЛИ с помощью атрибута Authorize. Например, на всем моем сайте я хочу, чтобы политика SuperuserRole имела полное разрешение на все.
Допустим, у меня есть следующий метод действия:
[Авторизоваться (Политика = "EditCustomer")]
Это потребует, чтобы вошедшему в систему пользователю была назначена роль с утверждением: Edit.Customer, поскольку я создаю политику для утверждения Edit.Customer. Все это работает нормально, но как я могу сказать, что я бы хотел, чтобы любой пользователь с ролью суперпользователя имел доступ к методу действия EditCustomer. Суперпользователь находится в базе данных как роль и дополнительно добавляется как политика под названием RequireSuperUser.