Phenix.NET for CSLA 框架应用问答

来源:互联网 发布:如何开通淘宝卖家直播 编辑:程序博客网 时间:2024/05/16 07:29
1.在用户登陆时,是用何种加密方式的呢,如方便可否告知,谢谢.
通过终端程序初次登陆系统时,用户名密码为:ADMIN/ADMIN,注意大写。
加密算法为:DES,请见:System.Security.Cryptography 命名空间
2.关于权限控制,如果用户在系统中的权限大多数是不同的,对于每个功能的多个权限,用角色分配是否容易呢?
框架采用“用户-角色-权限”结构,研究表明,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。除了方便权限管理之外,基于角色的访问控制方法还可以很好的地描述角色层次关系,实现最少权限原则和职责分离的原则。
说到具体,比如对于某个对象的读写权限,某个窗体按钮的允不允许点击,刨去逻辑上的控制外,剩下的就是权限控制。
要分清权限控制和业务逻辑控制是不同的。
检验的方法就是,拿上面的按钮做比方,只有一个权限(是否可点击触发)和它匹配,不可能出现多个权限,其余的必定是逻辑控制,这点在Phenix.Services.Client中做了处理:
ReadWriteAuthorization:读写授权组件,BarManager做了二次封装,窗体上有BarManager的话可零代码实现读写控制:如果你不在业务类的CanWriteProperty()、CanReadProperty()里写上逻辑控制代码的话,就会根据框架配置权限信息进行控制;从本质上来说,此组件做到了类属性的读写控制。这部分介绍可看CSLA的书籍。
ExecuteAuthorization:执行授权组件,如果界面某些控件需要控制灰亮的话,可以在IDE中将它拖到窗体中,然后配置上逻辑控制,在运行期界面展现的时候,框架首先判断这些逻辑控制的配置信息,然后再判断被自动导入到配置库中的权限配置信息;从本质上来说,此组件接近于做到了类方法的调用控制。
对于配置库的管理模块,找时间我会放出来供参考使用,这样,你会更清楚”用户-角色-权限“这套配置方法。
本框架还支持“片区”控制,比如片区业务、分堆场、分仓库等等,让“片区”操作人员无权操作“片区”外的数据,起到对下级部门互相之间保密、信息隔断,而上级部门可浏览全局或部分信息的效果,这些只要配合数据库结构设计,基本上仅需配置即可。