Раньше я задавал аналогичный вопрос , но не получил ответа, который помог бы мне понять, как работают настраиваемые поставщики хранилищ для ASP. NET Core Identity , поэтому Я попытаюсь задать вопрос по-другому.
Предполагая, что у меня есть собственный поставщик хранилища, реализованный для ASP. NET Core 2.2, какой код в моей реализации позволит [Authorize]
атрибут, чтобы проверить, есть ли у пользователя роль? Например, если у действия есть [Authorize (Role = "Manager")]
, какой код входит в мой пользовательский tblRoles
в базе данных на основе значения "Manager"
в атрибуте?
Для ясности, я не запрашивая специфику c logi c, которая обращается к базе данных и проверяет, есть ли у пользователя роль. Я спрашиваю, где будет этот logi c?
Мне кажется, что он будет в классе CustomRoleStore
, но методы там никогда не выполняются, если я не вызываю их явно. А если мне нужно их явно вызывать, то зачем мне CustomRoleStore
? С таким же успехом я мог бы просто создать свой собственный сервис, который обрабатывает авторизацию пользователя для каждого действия и не усложняет мой код с помощью Identity.
Извините, что этот вопрос повсюду, но я чувствую, что упускаю некоторые ключевые моменты о том, как Identity обрабатывает авторизацию, и трудно понять, о чем конкретно просить, чтобы понять.