Перейти к содержанию

Требования и обработчики: строительные блоки политики

Каждая политика в ASP.NET Core состоит из одного или нескольких требований, и у каждого требования может быть один или несколько обработчиков. Например, в зале ожидания у вас есть одна политика ("CanAccessLounge"), два требования (MinimumAgeRequirement и AllowedInLoungeRequirement) и несколько обработчиков, как показано на рисунке.
Pasted image 20220621191024.png
Чтобы соответствовать политике, пользователь должен выполнить все требования. Если какое-либо из требований не выполняется, компонент авторизации не разрешит выполнить конечную точку.
Каждое требование может иметь один или несколько обработчиков, которые подтверждают, что требование было выполнено. Так, у AllowedInLoungeRequirement есть два обработчика, каждый из которых может удовлетворить требование:

  • FrequentFlyerHandler
  • IsAirlineEmployeeHandler

Примечание

Третий обработчик BannedFromLoungeHandler используется для проверки несоответствия условию. О нём будет рассказано далее.

Можно использовать требования и обработчики для достижения практически любой комбинации поведения; обработчики для требования сочетаются, используя логический оператор OR (если какой-либо обработчик удовлетворён, требование выполнено); требования сочетаются, используя логический оператор AND (все требования должны быть удовлетворены).
Pasted image 20220621192657.png

Совет

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


Последнее обновление : 21 декабря 2022 г.
Дата создания : 8 октября 2022 г.

Комментарии

Комментарии