关于c#:ASP.NET Core Identity中的角色声明与自定义auth中的角色权限相比

Role Claims in ASP.NET Core Identity compared to Role Permissions in custom auth

让我们离开ASP.NET Identity几秒钟,可以说我们正在为应用程序构建自定义身份验证/授权系统。

它将包含下表以提供充分的灵活性:
用户数
的角色
权限
UserRoles
角色权限

通过上面的内容,我们可以在应用程序的完整的用户管理部分中,管理员可以说用户A具有角色B,角色B具有权限C,D,F。

上面的内容在过去一直对我有用,但是现在让我们切换到使用ASP.NET Identity的ASP.NET Core MVC应用程序。

尝试利用Microsoft在UserManager中为ASP.NET Core Identity提供的所有功能,我仍然希望能够实现上述功能,但是要使用ASP.NET Core Identity MVC。

我知道的:
我可以轻松地使用UserManager来为用户和角色以及用户角色实现CRUD页面。

我想弄清楚的是:
如何复制"角色具有哪些权限/动作"的相同行为?概念。

我对此的初步猜测是,您将结合使用Claims和Roles。将声明分配给角色,即RoleClaims,然后将角色分配给Users。

这样,我将能够简单地使用Authorize标签检查Controllers / Action方法上方的Roles。另外,如果用户的角色没有Claim" DeleteProduct",则进一步在页面级别显示"隐藏/显示删除"按钮,类似于此基于视图的授权文档所说的。

-

我试图弄清楚我是否在正确的道路上使用这些东西。任何建议或更正将是有帮助的。


这个人似乎对您的特定问题有潜在的解决方案。

使用ASP.NET Core Identity 3的用户角色权限

有关索赔和保单的更多信息

https://docs.microsoft.com/zh-cn/aspnet/core/security/authorization/claims

基本上

  • 结交新用户
  • 扮演新角色
  • 提出新的要求
  • 向角色添加声明
  • 将用户添加到角色
  • 制定具有声明的新策略(在配置服务期间)
  • 检查是否有被授权执行策略的用户
  • 注意:不能完全确定它是否适用于ASP.Net Core 2,或者您使用的是哪个版本。