gpt4 book ai didi

c# - 细粒度的权限; PrincipalPermission - 角色与权限分开;

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:18 29 4
gpt4 key购买 nike

我在 wcf 服务中使用 PrincipalPermission 有一段时间了。[PrincipalPermission(SecurityAction.Demand, Role = SecurityRoles.CanManageUsers)]

我们的角色以:Can* 为前缀,这是我们如何使用内置的 asp.net 成员(member)系统实现细粒度的操作控制。

这使得作为一个业务部门很难知道我们可以为用户提供哪些细粒度的角色。

这是我的新方法,想看看是否有人可以在我实现我的建议之前提供反馈、代码审查。

1) aspnet_roles - 业务部门角色

2) 通过创建权限表和Role_Permission 表以及User_Permission 表(多对多)扩展asp.net 成员(member)系统

3) 创建自定义 CodeAccessSecurityAttribute + 查看新表[CustomPermissionCheck(Security.Demand, HasPermission="can*")]第一次迭代我将静态地新建依赖存储库.. 理想情况下,我想要一个 aop 样式属性,该属性已注入(inject)存储库 IPermissionRepository.HasPermission(...);

如果我采用新的 aop 方式,我可能会停止从 CodeAccessSecurityAttribute 继承——安全人员对此有何评论?

有没有其他人解决了这个问题,框架中有什么我遗漏的吗?

最佳答案

我会说,如果你在 ASP.NET 中,那么你应该实现一个 custom RoleProvider .

在您的自定义 RoleProvider 中,您将访问另一个表,该表将业务组链接到细粒度权限。

然后,当您找到用户时,您可以找到他们所在的业务组,并在 RoleProvider 中分配所有适当的角色,而不更改您拥有的任何现有代码。

它的效果也更好,因为它允许您轻松更改哪些组拥有哪些权限,同时在代码端保持纯权限的域模型。

关于c# - 细粒度的权限; PrincipalPermission - 角色与权限分开;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760166/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com