答复“对CSLA很感兴趣,但觉得它的权限管理(操作权限和字段权限)那块很难做到动态配置,想知道你们是怎么做的,希望可以交流一下。。。”:
此处的操作权限,可归为业务对象的public过程的控制;而字段权限,可归为业务对象的public属性的控制,属性将字段进行了封装。
首先不是很清楚你所谓的动态配置是指达到什么程度,如果相对静态配置而言是指CSLA作者的那本书里所提供的写法的话,那确实是够累人的,将角色字符串写死到了代码里来做判断。。。这个做法,在公司的一个超大型项目里也这么做了:
string permCode = "A0200002";
if (!UserBLL.CheckRight(permCode))
{
throw new XXXXSecurityException("A020100002", BittInnerBLL.UnallowedAddBitt);
}
这样的写法着实让人无法忍受,permCode字符串一点含义都没有,只是一个检索ID,要知道到底是什么个角色,开发人员得到配置表里去找。这对于大型系统来说是个灾难,工程里到处是这样的代码让人发晕。
Phenix框架对基于角色的权限控制做了封装,首先业务开发人员是不必写

本文探讨了CSLA框架中权限管理的复杂性,特别是针对动态配置的需求。介绍了一种使用Phenix框架来简化基于角色的权限控制的方法,并讨论了业务逻辑层面的权限控制策略。
最低0.47元/天 解锁文章
1277

被折叠的 条评论
为什么被折叠?



