做一bs项目,涉及到权限分配,想跟大家谈谈用户权限问题。
我大概思路是这样的
项目是一n层次的树形结构
--1
 |-2
  |-.....
   |-n将用户按照不同的功能职责分组,在将每个组的权限访问页面存入到数据库中,输入的时候只输入相关组中的页面(直接在后台构造的js,里面包含访问页面,之后输出到页面上,页面用的是一个框架结构,所以排除多人访问挤掉js的问题)。
但是这样涉及到一个用户访问多个组的时候会出现一些问题。比如我只想要用户访问一个权限组中的一部分页面,难道这样又要构建一个新的组?还有一点就是有N个组的话,将页面存在数据库中好些还是存在特定的xml文件中好些
以前听说一些大企业软件可以将权限分配到页面上的按钮。这又是怎么样实现的呢
请大家说说自己做项目时遇到这快是怎么解决的。
只能发100

解决方案 »

  1.   

    比如我只想要用户访问一个权限组中的一部分页面,难道这样又要构建一个新的组?
    是 构建一个新的就行了还有一点就是有N个组的话,将页面存在数据库中好些还是存在特定的xml文件中好些 一般都是给页面对应一个code值存在数据库里面
      

  2.   

    一种思路,供参考用户数据库
    用户名 一级 二级一级用来分组,二级在一级的基础上再分组,记录用户的权限再做个
    网页数据库
    网页名 一级 二级一级用来对应上面的一级,二级对应上面二级,用来分配访问权限两个数据库,也可以用xml做。当用户登陆后,session保存用户的一级组别,二级组别做个独立的判断代码,每个页面都调用,访问后调用当前网页的级别数据,如果两者是相同,则允许访问,如果打算让高级别的也可以访问,只需用大于小于来判断。
      

  3.   

    如果负责的话可以参考.NET的System.Web.Security.MemberShip类
    http://msdn.microsoft.com/en-us/library/system.web.security.membership.aspx用例参见PetShop的源码
      

  4.   

    可以用tree来做  那么tree没有隐藏和灰色属性  可以根据权限自动生成tree 
    也可以把权限写在数据库里 然后根据登录的用户 来判断其权限 让他对有些节点操作 有些节点不可操作
      

  5.   

    没太明白楼主的意思,不过权限控制,一般我是按照RBAC模型来做,至于粒度,则根据实际需求可以做到系统级、组件级、页面级、模块级,甚至是楼主提到的控件级。只要把这些都作为资源信息进行管理就可以了。
      

  6.   

    在USER表中建个Tpye字段控制权限,登录时判断Tpye值,根据Tpye值生成用户所能操作的功能树...
      

  7.   

    基于角色控制(RBAC)的权限管理; 
    通过角色,模块,用户实现权限管理。
    角色信息
    人员角色关系 
    角色权限关系表
    模块信息表
    http://topic.csdn.net/u/20090730/12/66a4b1a2-69b2-456a-8bbc-2b1e59df080a.html