【问题标题】:What is the code that checks Roles with [Authorize] attribute using custom storage providers for Identity?使用身份的自定义存储提供程序检查具有 [Authorize] 属性的角色的代码是什么?
【发布时间】:2020-07-13 20:59:14
【问题描述】:

我之前问过similar question,但没有得到答案来帮助我了解custom storage providers for ASP.NET Core Identity 的工作原理,所以我将尝试以不同的方式提问。

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

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

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

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

【问题讨论】:

    标签: c# asp.net-mvc asp.net-core asp.net-identity asp.net-roles


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 2018-07-06
      相关资源
      最近更新 更多