CSLA如何动态控制权限的问题

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

答复“对CSLA很感兴趣,但觉得它的权限管理(操作权限和字段权限)那块很难做到动态配置,想知道你们是怎么做的,希望可以交流一下。。。”:

 

此处的操作权限,可归为业务对象的public过程的控制;而字段权限,可归为业务对象的public属性的控制,属性将字段进行了封装。

首先不是很清楚你所谓的动态配置是指达到什么程度,如果相对静态配置而言是指CSLA作者的那本书里所提供的写法的话,那确实是够累人的,将角色字符串写死到了代码里来做判断。。。这个做法,在公司的一个超大型项目里也这么做了:

            string permCode = "A0200002";
            if (!UserBLL.CheckRight(permCode))
            {
                throw new XXXXSecurityException("A020100002", BittInnerBLL.UnallowedAddBitt);
            }

这样的写法着实让人无法忍受,permCode字符串一点含义都没有,只是一个检索ID,要知道到底是什么个角色,开发人员得到配置表里去找。这对于大型系统来说是个灾难,工程里到处是这样的代码让人发晕。

Phenix框架对基于角色的权限控制做了封装,首先业务开发人员是不必写

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值