使用身份的自定义存储提供程序检查具有 [Authorize] 属性的角色的代码是什么?

What is the code that checks Roles with [Authorize] attribute using custom storage providers for Identity?

我问了一个 similar question before but did not get an answer to help me understand how custom storage providers for ASP.NET Core Identity 作业,所以我将尝试以不同的方式提出问题。

假设我有一个为 ASP.NET Core 2.2 实现的自定义存储提供程序,我实现中的哪些代码允许 [Authorize] 属性检查用户是否有角色?例如,如果一个动作有 [Authorize (Role = "Manager")],根据属性中的 "Manager" 值进入我的数据库中的自定义 tblRoles 的代码是什么?

需要说明的是,我不是在询问访问数据库和检查用户是否具有角色的特定逻辑。我在问那个逻辑在哪里?

对我来说,它似乎在 CustomRoleStore class 中,但除非我明确调用它们,否则那里的方法永远不会执行。如果我需要显式调用它们,那我为什么需要 CustomRoleStore?我还不如制作自己的服务来处理每个操作的用户授权,而不是使我的代码与 Identity 复杂化。

抱歉,这个问题到处都是,但我觉得我遗漏了一些关于 Identity 如何处理授权的关键点,而且很难知道到底应该问什么才能获得理解。

我做了更多研究并找到了一系列很棒的教程:https://www.youtube.com/watch?v=Fhfvbl_KbWo&list=PLOeFnOV9YBa7dnrjpOG6lMpcyd7Wn7E8V

4th video at 20:13中解释了[Authorize]中的Role属性。 [Authorize] 属性使用角色值并将其与身份的角色声明进行简单比较。

据我了解,确实如此,自定义存储提供程序的实现与此没有直接关系。