我想设计一个用户全权限管理系统,如何去控制他们添加,删除,查看的某些信息,请大哥大姐们多多指教!!如果分不够立刻加!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【xdjzz】截止到2008-07-17 12:03:55的历史汇总数据(不包括此帖):
    发帖的总数量:19                       发帖的总分数:630                      每贴平均分数:33                       
    回帖的总数量:16                       得分贴总数量:3                        回帖的得分率:18%                      
    结贴的总数量:9                        结贴的总分数:260                      
    无满意结贴数:4                        无满意结贴分:130                      
    未结的帖子数:10                       未结的总分数:370                      
    结贴的百分比:47.37 %               结分的百分比:41.27 %                  
    无满意结贴率:44.44 %               无满意结分率:50.00 %                  
    楼主该结一些帖子了
      

  2.   

    两张表 一张用户信息表 一张权限表   在权限表里面有个字段叫URL  登陆的时候判断用户  然后根据每个不同的用户转发到不同的URL     
      

  3.   

    用Acegi
    用三张表
    Role
    Permission
    Resource用户属于一个或多个角色,一个角色拥有多个权限,一个权限有多个资源。
    这三个表之间是多对多的关系。
    通过Acegi可以做到。对URL的权限管理。页面上加入标签,根据权限来显示标签里面的内容。更高级的可以控制到方法的调用。我现在开发的系统就是这的。绝大部分的权限要求都可以满足了。
      

  4.   

    可以分三个部分实现.第一部分是数据库部分.一般情况下,会创建三张表,一张是用户组的表,表明每个组对于哪个页面有什么样的权限,另一张表是用户表,标明用户属于哪个组的成员(规定用户只能同时属于一个组会简单些),第三张表存放每个页面所对应的权限.第二部分是逻辑控制部分.要编写一个类,负责检查权限,若不符合权限要求可以自行跳转.这样的话,在请求页面的时候,可以得到当前的页面和当前用户,根据上述的三张数据库表,找出该用户是否有权限访问请求的页面,如果可以就继续下去,如果不可以,就进行跳转.
    这个类的调用代码,可以放在filter里面.这样,对其他代码可以几乎不做改动.第三部分是页面显示部分.这部分应该只剩下,当不符合权限的用户进行访问时,统一的跳转页面.写一个页面就可以搞定了.
      

  5.   

    我是参照http://www.springside.org.cn/
    来做的。你在里面查找Acegi方面的东西。
    对你应该有用。
      

  6.   

    关于权限定义可以有多种方法,当然表的个数也就不一样了
    user用户表
    resource资源表
    role角色表
    roleres角色资源表
    userrole用户角色表
      

  7.   

    RBAC 
    简单来说 WHERE-WHO-WHAT-WHEN-HOW  W4H
    WHERE:权限检查的检查域,如果只有一个域,此项可忽略;业务部门的规则和技术部门的规则是互相隔离的!
    WHO:谁来操作,在规则里面可能是 用户组,角色,用户实例,当前操作人是否在授权范围内
    WHAT:操作的目标对象,可能就是一个类型(创建时的检查),也可能是一个具体的对象
    WHEN:操作对象的状态,同一份数据在不同状态下的控制也是不同的,如果不考虑状态,可以忽略此项
    HOW:进行什么操作?创建,察看,删除,修改?以上5项构成一条规则,当然规则里面还可以包括其他信息,比如时间在每个域里面有若干这样的规则,用户登录之后的每个动作都在规则中进行匹配。
      

  8.   


    public interface IRule extends IEntity 
    {
    public ISpace getSpace();
    public IType    getType();

    public boolean applyToObject();
    public String getDataID();

    public IState   getState();
    public IActor    getActor();

    public boolean isApproveRule();
    public boolean isGodRule();

    public int getAction();
    public String getActionString();
    public boolean isAllAction();
    }
      

  9.   


    public CHECKRESULT check(ISpace where,IUser who,IRBACControlled whatANDwhen,int how)
    {
    if((m_nAction&how)!=how)
    return CHECK_CONTINUE;

    if(!m_bForAllData)
    {
    if(!whatANDwhen.getType().isType(m_objType))
    return CHECK_CONTINUE;

    if(!m_bAppliedToType)
    if(!whatANDwhen.getIDII().equals(m_strDataID))
    return CHECK_CONTINUE;
    }

    if(!m_bForAllState)
    if(!m_objState.isState(whatANDwhen.getState()))
    return CHECK_CONTINUE;

    if((m_objActor instanceof Team)||(m_objActor instanceof Role)||(m_objActor instanceof Group)){
    if(!((ActorContainer)m_objActor).contains(who))
    return CHECK_CONTINUE;

    }else if(m_objActor instanceof User){
    if(!m_objActor.equals(who))
    return CHECK_CONTINUE;
    }

    else if(m_objActor instanceof RoleName)
    {
    if(!((RoleName)m_objActor).contains(who,whatANDwhen,where))
    return CHECK_CONTINUE;
    }

    return m_bApproveRule?CHECK_APPROVED:CHECK_DENYED;
    }
      

  10.   

    可以看看Acegi的例子。去官方网站下就好了。不懂的话去google一下。很多配置acegi的文章的。
    只有运行起来,慢慢去理解才知道怎么做。
      

  11.   

        设计一个好的权限管理系统,一定要在开始做好总体规划。我看过一篇文章,本人觉得很不错,现推荐给你:http://blog.csdn.net/ekun008/archive/2006/11/06/1369824.aspx,希望对你有所补益
      

  12.   

    人家都推荐你去看Acegi了,你不能自己找吗?无语