Dynamics AX2012 标准权限控制工作原理

AX 2012的权限,根据其设计思路,是可以对任何表字段,窗体控件,以及运行在服务器端的类中的方法(方法头上标记有SysEntryPointAttribute(false)的方法) 进行权限控制。



可以看到,权限被划分为了:Code Permission, Privileges, Duties, Roles, Process Cycles, Policies. 

他们的关系大致如下:


红色框里是用MenuItem来控制窗体的可见性、可编辑性等属性。

绿色框里是针对某个具体字段,table,方法中的个别字段进行控制。

首先应该根据红色框的思路配置,对个别角色需要对表字段或者窗体控件要单独控制的,再Permissions中增加特许权限。

Policies是做数据行过滤用。

Process Cycles是duty的集合,而duty下面包含Privileges,这个是方便新建角色的时候可以根据流程周期及职责快速为新角色分配权限。


熟悉数据库的开发人员,通过数据库表/ 视图可以更好理解他们的关系:

SecurityUserRole: 保存了“系统用户”与“角色”之间的关系

SecurityRole: 角色表

SecurityRoleTaskGrant: 保存了“角色”与权限的关系。

SecurityTask:  权限表,所谓的Task包含了Privileges, Duties, Process Cycles 三种情况, 分别对应了枚举值SecurityTaskType的0,1,2

SecuritySubTask: 保存了Task之间的树形结构。Process Cycles包含Duties包含Privileges。

另外UserInfo保存了用户信息;SysModelElementLabel保存了界面上的字段多语言描述

用以上表做连接查询就可以抽出所有用户所对应的全部权限了。很容易吧?









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值