Dotnet: авторизация, если у пользователей есть подписка
Я хочу ограничить некоторые функции только для абонентов, которые приобрели элитный пакет. Чтобы определить, является ли пользователь подписчиком, я должен зайти в репозиторий и запросить, есть ли у этого пользователя хотя бы 1 активный пакет.
Я применяю авторизацию на основе Политики. В конце концов мне нужно пройти через сервис, чтобы получить доступ к слою репозитория для запросов, но поскольку AuthorizationHandler является одноэлементным, он не использует сервисы.
Я думаю, смогу ли я создать дополнительный вычисляемый столбец в таблице User, который указывает, есть ли у пользователя активный пакет.
Какова лучшая практика в этом случае? Как авторизовать пользователей, если они купили продукт (пакет)?
1 ответ
У вас может быть одноэлементная служба, которая предоставляет информацию вашему AuthorizationHandler (в зависимости от используемого вами контейнера IoC - или просто начального экземпляра), который будет работать.
Если бы у вас могло быть поле, связанное с пользователем (и, возможно, включенное в маркер аутентификации в зависимости от реализации безопасности), это могло бы значительно улучшить производительность.