日期:2014-05-20  浏览次数:20945 次

求教:MVC3下的RBAC+部门结构的设计
采用MVC3、SQLServer数据库。

需求情况大致如下:

公司组织结构为:
0000总公司
  1000北京分公司
    1100销售部
    1200开发部
    1300客服部
  2000上海分公司
    2100销售部
    2200开发部
    2300客服部
  3000广州分公司
    3100销售部
    3200开发部
    3300客服部
0100财务部
0200市场部
0300行政部

各部门职位(相同):
CEO
分公司总经理
经理
员工

其中权限为:
  分公司职位:
    员工==》增删改查自己负责记录
    经理==》增删改查自己负责记录,查看本部门所有人员创建记录(不可增删改)。
    分公司总经理==》查看本公司所有部门所有人员创建记录

  总公司职位:
    (各部门)员工==》增删改查自己负责记录
    (各部门)经理==》查看所有分公司所有部门所有人员与本部门相关记录
    CEO==》查看全公司所有分公司所有部门所有人员创建记录


问题:(MVC3)
  1 如何落实用户在组织结构里的层级关系?
  2 如何控制用户访问权限?
  3 使用MVC3,采用Cotroller、Action方式控制:
     Resource表使用字段控制访问,但是需要参数的情况是否增加一个参数字段?


找了很多权限设计也没找到合适的解决办法,反而越看越晕,请问这个权限应该如何设计?
(或者哪位前辈能指导去哪里能找到相关教程?)
------解决方案--------------------
业务逻辑接口和功能实现之后,调用它的页面是什么编程方式又有什么关系呢?如果你不纠缠什么MVC,就能首先定义好业务逻辑。你把两层系统的设计,纠缠在一起,就会什么好的建议也不看不上。别人说“钢笔好”,你会说“钢笔没有毛”;别人说“毛笔好”,你会说“毛笔没有胆”。
------解决方案--------------------
引用:
因为MVC3采用的是Controller、Action方式,我通过Action验证权限的方式决定用户的资源访问,不同职位权限的人访问的数据集合不同,我需要的是如何在MVC的Action里进行区分,是否不同权限的用户执行不同的Action,是否有更有效的办法,这些问题我需要说清楚。


没必要纠结的东西有两个,第一是MVC,第二是RBAC。
如果你以前做过,那你不会纠结。

不试过,就会一直停留在理解概念的地步。