链接CanExecute命令和授权管理方法

时间:2014-09-11 14:11:10

标签: c# authorization icommand

我想管理执行命令和查看控件等的权限。 因此我有一个实现ICommand接口的UserAction类。

我想使用一个Enum为UserManagement定义可用的UserActions。

为简化UserManagement,我想将多个UserActions包装到UserActivities,在数据库表中设置权限。

在运行时,我有一个Role类,它维护当前的权限集(存储为UserActivities),这些权限可能会在运行时更改。

有没有人知道如何正确管理这个CanExecute方法,或者是否有适合此主题的漂亮模式或框架?

我现在在网上找不到这个。

1 个答案:

答案 0 :(得分:1)

总的来说,您想要实现的是外化授权管理。您可以考虑两种不同的方法:

  1. Microsoft提供了一种称为基于声明的授权。您可以在线找到许多关于该主题的教程。这是一个很棒的article from 2013
  2. 您还可以使用XACML(可扩展访问控制标记语言)完全外部化(并标准化)您的授权,XACML既是授权框架,也是定义授权策略的策略语言。遗憾的是.NET没有内置XACML,因此您需要添加外部授权引擎(也称为策略决策点或PDP)。有一对可以从Axiomatics或XEngine获得(在sourceforge上)。