日期:2014-05-17  浏览次数:20509 次

请教:关于三层架构中数据权限的问题
没做过企业开发,现在有个关于数据权限的问题很头疼。不知道应该把数据权限验证放在哪一层。


  我的基本架构是这样的,DAL(orm)---BLL---WCF----(Web,Winform,Silverlight),我想在业务层做数据验证,比如用户只能获取本人的订单或者用户只能获取本部门的订单等等。我目前的做法是在WCF获得验证过后的用户ID,通过aop注入一个专门用来进行数据权限验证的类库,对于获取订单,我先在该数据权限验证模块获得用户权限,跟据权限获得Where表达式,将此表达式注入BLL中。
  但是修改、编辑、删除这种,如果我要在数据权限验证项目中验证,等于每次操作都要额外在这个权限验证项目中调用DAL获取要操作对象的信息。感觉不是很舒服。
   
  最清楚、简单的方法就是在业务层通过switch (用户该操作的等级)来实现。但这样,权限基本就和业务完全耦合了。
描述的比较混乱,希望各位高手指点一下常用的数据权限实现方式。 
   
 

------解决方案--------------------
你想发第几层放第几层!没什么影响!
------解决方案--------------------
先实现功能吧,时间长了,慢慢就会规划了
------解决方案--------------------
"但普通工作人员获取到的是自己的订单,部门经理获取的是该部门的订单"
这个貌似是业务需求吧,和权限没啥关系吧