Требования и обработчики: строительные блоки политики¶
Каждая политика в ASP.NET Core состоит из одного или нескольких требований, и у каждого требования может быть один или несколько обработчиков. Например, в зале ожидания у вас есть одна политика ("CanAccessLounge"), два требования (MinimumAgeRequirement и AllowedInLoungeRequirement) и несколько обработчиков, как показано на рисунке.

Чтобы соответствовать политике, пользователь должен выполнить все требования. Если какое-либо из требований не выполняется, компонент авторизации не разрешит выполнить конечную точку.
Каждое требование может иметь один или несколько обработчиков, которые подтверждают, что требование было выполнено. Так, у AllowedInLoungeRequirement есть два обработчика, каждый из которых может удовлетворить требование:
FrequentFlyerHandlerIsAirlineEmployeeHandler
Примечание
Третий обработчик BannedFromLoungeHandler используется для проверки несоответствия условию. О нём будет рассказано далее.
Можно использовать требования и обработчики для достижения практически любой комбинации поведения; обработчики для требования сочетаются, используя логический оператор OR (если какой-либо обработчик удовлетворён, требование выполнено); требования сочетаются, используя логический оператор AND (все требования должны быть удовлетворены).

Совет
На страницу Razor или метод действия можно добавить несколько политик, многократно применяя атрибут [Authorize], например [Authorize("Policy1"), Authorize("Policy2")]. Для авторизации запроса должны быть удовлетворены все политики
Дата создания : 8 октября 2022 г.