链接CanExecute方法的命令和授权管理
本文关键字:授权 管理 命令 CanExecute 方法 链接 | 更新日期: 2023-09-27 18:21:28
我想管理执行命令和查看控件等的权限。因此,我有一个实现ICommand接口的类UserAction。
我想使用一个枚举来定义可用于UserManagement的UserActions。
为了简化UserManagement,我想将多个UserActions包装为UserActivities,这些权限在数据库表中设置。
在运行时,我有一个Role类,它维护当前的权限集(存储为UserActivities),这些权限在运行时可能会更改。
有人知道如何正确管理这个CanExecute方法吗?或者有没有适合这个主题的好模式或框架?
我现在在网上没有发现太多关于这个的信息。
作为一个整体,您想要实现的是外部化授权管理。您可以考虑两种不同的方法:
- 微软提供了所谓的基于声明的授权。你可以在网上找到很多关于这个主题的教程。这是2013年的一篇很棒的文章
- 您还可以使用XACML来完全外部化(并标准化)您的授权,XACML是一种可扩展访问控制标记语言,它既是一种授权框架,也是一种定义授权策略的策略语言。不幸的是,.NET没有内置XACML,因此您需要添加一个外部授权引擎(也称为策略决策点或PDP)。Axiomatics或XEngine(在sourceforge上)提供了一对