【发布时间】: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