Dotnet: авторизация, если у пользователей есть подписка

Я хочу ограничить некоторые функции только для абонентов, которые приобрели элитный пакет. Чтобы определить, является ли пользователь подписчиком, я должен зайти в репозиторий и запросить, есть ли у этого пользователя хотя бы 1 активный пакет.

Я применяю авторизацию на основе Политики. В конце концов мне нужно пройти через сервис, чтобы получить доступ к слою репозитория для запросов, но поскольку AuthorizationHandler является одноэлементным, он не использует сервисы.

Я думаю, смогу ли я создать дополнительный вычисляемый столбец в таблице User, который указывает, есть ли у пользователя активный пакет.

Какова лучшая практика в этом случае? Как авторизовать пользователей, если они купили продукт (пакет)?

1 ответ

У вас может быть одноэлементная служба, которая предоставляет информацию вашему AuthorizationHandler (в зависимости от используемого вами контейнера IoC - или просто начального экземпляра), который будет работать.

Если бы у вас могло быть поле, связанное с пользователем (и, возможно, включенное в маркер аутентификации в зависимости от реализации безопасности), это могло бы значительно улучшить производительность.

Другие вопросы по тегам