情况是这样的:
设计了一个单点登陆的网站程序,类似网上流行的网络通行证,登陆成功后就可以使用里边的所有系统和子程序,而不再需要输入用户名和密码。同时设置用户的权限,来控制用户可以访问哪些系统和系统里面的子程序,现在的问题是:如何合理地设计用户权限表和当用户登陆后如何用cookies存储用户的权限?用户权限表:包括是否可以访问某一大型系统程序和该系统的子类。
用户权限cookies:当登陆用户点击某一大型系统程序时,根据存储的用户权限cookies判断是否有访问该系统的权限,如果有则顺利进入系统,同时系统中包含很多子类,当点击子类时,再判断是否有权限访问该子类。说明:大类和小类的个数都会随着系统的升级而变化。cookies初步的想法是:大类之间的权限用逗号(,)分割,小类的权限仅随大类之后,有访问的权限用1表示,否则为0。如:1101,1001,0,1111
逗号分割开的第一位数是存储大类的访问权限,后面的数字是小类的权限,即:第二位数字是该大类中第一小类的权限,依次类推。
现在对用户权限表设计还没有具体的想法
请有经验的各位高人指导一下,谢谢!

解决方案 »

  1.   

    我的想法:
    1:分 角色 和 特殊用户
    2:专门写一个类.例出PowerManager,单独处理用户权限相关.
    3:用户的权限级别写到数据库中.每类系统都有相应的权限级别,也写到数据库.
    4:在每类系统的入口处对用户权限进行较验.
      

  2.   

    搜索“RBAC”,你就应该清楚了。给你推荐几篇我认为比较好的文章:
    http://canonical.javaeye.com/blog/33848
    http://www.xinxijishu.org/Article/pc/kaifayingyong/200607/1771.html
    http://www.cnblogs.com/Wenzy/archive/2006/09/22/508666.aspx
    http://blog.joycode.com/moslem/articles/85194.aspx
      

  3.   

    首先,谢谢各位的帮助!
    原来用户权限还有这么大的学问,孤陋寡闻,请大家不要见笑。
    在下还有很多不解的地方,请大家进一步指教
    1.RBAC是不是用户只和角色关联,而角色只与权限关联?
    2.是不是一个用户可以拥有好几个角色,一个角色如何继承另一个角色的权限?
    3.角色和菜单(权限)的关系是不是就一张表,还是有几个角色就有几张表?
    4.特殊用户主要用来做什么?
    5.角色是仅仅指浏览者的名称,还是包含管理员的名称?
    暂时先问这5个问题吧
    谢谢大家
      

  4.   

    假如有部门的话可以通过部门和单个用户来划分权限。
    如果有用户添加,用户修改,及用户删除。用户权限表可以记录当前用户的权限信息如:用户    功能块   权限代码
    aa      用户添加   读
    aa      用户修改   写
    aa      用户删除   无权限楼主的按1101这样也可以。个人感觉要是系统扩充的话。你的权限代码会有适当的改变。有点麻烦。
      

  5.   

    请问:一个最基本RBAC一共需要几张表,各是什么?
    谁有没有一个简单的RBAC数据表提供下载,让俺学习一下!
      

  6.   

    刚花了2个月完成了权限这块的东西,权限定位到控件,
    表:t_User
       t_Role
      

  7.   

    刚才点错了
    ================
    t_User(用户表)
    t_Role(角色表)
    t_RoleUser(角色用户表)
    t_UserPopedom(用户权限表)
    t_RolePopedom(角色权限表)
    t_PageControl(页面及其按钮表:冗余表)
    还有一些表是根据需求而来的,以上的表足以完成,
      

  8.   

    角色的权限继承怎么设置?
    比如:角色5继承4,4继承3,3继承2,2继承1
    当读取角色5的权限时,是不是需要使用递归来完成呀,还有这个用户的所有权限如何存储在cookies中,又如何提取是否具有某一菜单的权限?