代码之家  ›  专栏  ›  技术社区  ›  flix

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

  •  0
  • flix  · 技术社区  · 10 年前

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

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

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

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

    是否有人知道如何正确管理CanExecute方法,或者是否有适合本主题的好模式或框架?

    我在网上暂时找不到很多关于这个的信息。

    1 回复  |  直到 10 年前
        1
  •  1
  •   David Brossard    10 年前

    作为一个整体,你想要达到的目标叫做 外部化授权管理 。您可以考虑两种不同的方法:

    1. 微软提供了一种叫做基于声明的授权。你可以在网上找到很多关于这个主题的教程。这里有一个很棒的 article from 2013 .
    2. 您还可以使用XACML(eXtensible Access Control Markup Language,可扩展访问控制标记语言)来完全外部化(和标准化)您的授权,XACML既是授权框架,也是定义授权策略的策略语言。不幸的是,.NET没有内置XACML,因此您需要添加外部授权引擎(也称为策略决策点或PDP)。Axiomatics或XEngine(在sourceforge上)提供了一些选项。