.net 中基于可配置标志的角色权限

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

我想以特定的方式跟踪用户角色,在我看来,这可能已经存在,但我找不到任何内容。如果这个轮子存在的话,我不想重新创建它。

我希望角色拥有可定义的 CRUD 权限,而不是基于控制器/操作的授权,我可以使用这些权限来过滤数据。

我想我会拥有 CRUD 权限作为一个简单的

Flags enum
:

[Flags]
public enum RolePermission
{
    None = 0,
    Create = 1,
    Read = 2,
    Update = 3,
    Delete = 4,
}

然后对角色进行建模,如下所示:(使用 EF Core)

public class UserRoles
{
    public long Id { get; set; }
    public string Name { get; set; }
    public RolePermission Users { get; set; }
    public RolePermission Cars { get; set; }
    public RolePermission OtherUsersCars { get; set; }
    public RolePermission Titles { get; set; }
}

然后将这些值作为简单键值对滚动到身份验证令牌中 - UserRoles Id 为键,RolePermission 为值。

使用 EF Core,我可以在上下文中获取用户声明,并执行诸如将响应过滤为仅“此用户的汽车”之类的操作,除非他们具有

OtherUsersCars
读取权限(作为众多示例之一)。

此模式是否有一个名称,或者更好的是,是否有一个已经存在的特定 .net 实现?我发现的所有内容都是“可以或不能访问控制器/操作”模式,这很好,但不是我想要做的。

c# authorization asp.net-authorization
1个回答
0
投票

类似的问题也出现在Stackoverflow上。请查看此内容。 这可能会解决您的问题。

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