ASP.NET 核心身份中的角色声明与自定义身份验证中的角色权限相比
Role Claims in ASP.NET Core Identity compared to Role Permissions in custom auth
让我们暂时离开 ASP.NET 身份,假设我们正在为我们的应用程序构建自定义 authentication/authorization 系统。
它将包含下表以获得完全的灵活性:
用户
角色
权限
用户角色
角色权限
有了上面的内容,我们就可以拥有一个完整的应用程序用户管理部分,其中管理员可以说用户 A 具有角色 B,角色 B 具有权限 C、D、F。
以上内容过去一直对我有用,但现在让我们切换到使用 ASP.NET 身份的 ASP.NET 核心 MVC 应用程序。
尝试在 UserManager 中利用 Microsoft 为您提供的所有 ASP.NET Core Identity 我希望仍然能够实现上述目标,但是 ASP.NET Core Identity MVC 方式。
我知道的:
我可以轻松地使用 UserManager 为用户和角色以及用户角色实现 CRUD 页面。
我想弄清楚的是:
如何复制 "which permissions/actions does a role have?" 概念的相同行为。
我对此的初步猜测是您将结合使用声明和角色。声明被分配给角色,即 RoleClaims,然后角色被分配给用户。
这样我就可以简单地检查 Controllers/Action 方法上方的角色是否带有授权标签。此外,如果用户的角色没有声明 "DeleteProduct",则在页面级别更进一步说 hide/show 删除按钮 "DeleteProduct" 有点像这个 view-based authorization documentation 所说的。
--
我想弄清楚我是否走在正确的道路上。任何建议或更正都会有所帮助。
此人似乎对您的特定问题有潜在的解决方案。
有关索赔和保单的更多信息
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/claims
基本上
- 创建一个新用户
- 创建新角色
- 提出新的声明
- 向角色添加声明
- 将用户添加到角色
- 创建一个带有声明的新策略(在配置服务期间)
- 检查用户是否被授权使用策略
注意:不完全确定它是否适用于 ASP.Net Core 2 或您使用的是哪个版本。
让我们暂时离开 ASP.NET 身份,假设我们正在为我们的应用程序构建自定义 authentication/authorization 系统。
它将包含下表以获得完全的灵活性:
用户
角色
权限
用户角色
角色权限
有了上面的内容,我们就可以拥有一个完整的应用程序用户管理部分,其中管理员可以说用户 A 具有角色 B,角色 B 具有权限 C、D、F。
以上内容过去一直对我有用,但现在让我们切换到使用 ASP.NET 身份的 ASP.NET 核心 MVC 应用程序。
尝试在 UserManager 中利用 Microsoft 为您提供的所有 ASP.NET Core Identity 我希望仍然能够实现上述目标,但是 ASP.NET Core Identity MVC 方式。
我知道的:
我可以轻松地使用 UserManager 为用户和角色以及用户角色实现 CRUD 页面。
我想弄清楚的是:
如何复制 "which permissions/actions does a role have?" 概念的相同行为。
我对此的初步猜测是您将结合使用声明和角色。声明被分配给角色,即 RoleClaims,然后角色被分配给用户。
这样我就可以简单地检查 Controllers/Action 方法上方的角色是否带有授权标签。此外,如果用户的角色没有声明 "DeleteProduct",则在页面级别更进一步说 hide/show 删除按钮 "DeleteProduct" 有点像这个 view-based authorization documentation 所说的。
--
我想弄清楚我是否走在正确的道路上。任何建议或更正都会有所帮助。
此人似乎对您的特定问题有潜在的解决方案。
有关索赔和保单的更多信息
https://docs.microsoft.com/en-us/aspnet/core/security/authorization/claims
基本上
- 创建一个新用户
- 创建新角色
- 提出新的声明
- 向角色添加声明
- 将用户添加到角色
- 创建一个带有声明的新策略(在配置服务期间)
- 检查用户是否被授权使用策略
注意:不完全确定它是否适用于 ASP.Net Core 2 或您使用的是哪个版本。