Пользовательские фильтры авторизации для проверки подтверждения по электронной почте и владения ресурсами - PullRequest
0 голосов
/ 29 марта 2020

Я хотел бы иметь специальный фильтр авторизации, например [Verified], чтобы проверить, подтвержден ли пользователь по электронной почте, что является свойством моего User класса (IsEmailConfirmed).
Я прочитал docs об авторизации в. NET Ядро, но не уверен, каким должен быть правильный подход.

Кроме того, я хотел бы иметь другой фильтр, чтобы проверить, является ли аутентифицированный пользователь владельцем ресурса, который он пытается обновить / удалить. У всех моих сущностей есть свойство CreatedBy, поэтому я должен проверить это в отношении пользователя, вошедшего в систему.

Какие типы авторизации (роли, утверждения, политика и т. Д. c.) Являются наиболее подходящими для каждого сценария?

1 Ответ

1 голос
/ 29 марта 2020

Претензии обычно используются, когда существует третья сторона, предоставляющая значения Претензии. В вашем случае это не будет применимо.

Вы можете использовать как роли, так и политики, однако роли проще всего реализовать для первого сценария. Вы можете создать Role что-то вроде VerifiedUser и назначить его пользователю, когда электронная почта проверена. Если это единственное требование, то Роли - лучший подход.

Для второго сценария лучше всего реализовать политику, так как для этого потребуется запрос к БД для извлечения ресурса и определения, является ли ресурс ресурсом. доступно пользователю или нет. Так как в любом случае вы будете внедрять Политику, вы можете внедрить Проверку электронной почты в самой модели политики, исключив подход Роли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...