ASP.NET Identity 中的角色层次结构?

问题描述 投票:0回答:1

是否有推荐/内置的方法来在 ASP.NET Identity 中实现角色层次结构?我有四个角色:Master、Admin、Manager 和 Restricted。我想开发一种安全的方法来确定哪些角色可以访问某些功能。例如,我不希望管理员能够编辑或创建具有主角色的用户,但他们应该能够编辑管理员和受限用户。

我想到的一个解决方案是创建一个枚举,如下所示:

   public enum Roles
   {
       Master = 64,
       Admin = 16,
       Manager = 4,
       Restricted = 1
   }

然后使用比较运算符来判断谁的授权级别更高

这样做的问题是,感觉就像我开始编写自己的身份验证系统,而宁愿将尽可能多的留给编写身份的安全专业人员。

是否有一种公认且安全的方法来在 ASP.NET Identity 中实现角色层次结构?

c# security authorization asp.net-identity razor-pages
1个回答
0
投票

您实际上想做的是管理权限。您可以使用角色来实现这一点 - 如果您的权限组相当简单,但现实生活通常并非如此。推荐的解决方案是使用基于声明的方法,您可以将各个操作分配为对用户身份的声明,然后查询当前用户以查看他们是否拥有必要的声明,然后才允许他们执行操作。

https://learn.microsoft.com/en-us/aspnet/core/security/authorization/claims?view=aspnetcore-8.0

© www.soinside.com 2019 - 2024. All rights reserved.