控制客户端访问是开发一个基于B/S的架构的系统的开发者必须考虑的问题。JSP或SERVLET规范的基于配置文件的安全策略对资源的控制是以文件为单位的,即只可以定义某个视图全部可以或全部不能被访问。一个比较复杂的系统往往要要求对视图的一部分(如JSP页面里的一个按钮)提供访问控制,只允许被某种角色的用户访问。how to do? 請大家提供一些解決方案. thanks a lot.

解决方案 »

  1.   

    还是权限控制 ..前几天回过一帖:
    1,一张权限表:如里面有:用户管理,XX信息管理 ... 
    2,一张角色表:如里面有 ==>初级用户 ,高级用户... 
    3,一张角色权限表:就是每个角色对应的权限: 
    (在代码中实现更新和添加时实现是:每次删除这个 
    角色ID对应的权限ID,再批量添加) 
    4,一张用户表:把角色分配给用户,间接的实现权限分配了。不同用户不同权限不就达到了:
    对视图的一部分(如JSP页面里的一个按钮)提供访问控制,只允许被某种角色的用户访问。
      

  2.   

    你说的某种角色是指那类?
    cookies可以记录些东西.但好像满足不了你的要求.
    其他的就是判断了.如果这种角色是会员非会员的.那就是判断了./
      

  3.   

    楼上的可以实现
    权限可以细致到页面的按钮级 增、删、改、查
    可以分别用具体字段来存储,标识是否具有这样的权限,
    然后在用户登录时初始化用户信息的时候,初始化获得这些相应的信息放在session中,在页面获取这些状态,控制页面的模块显示和按钮显示
      

  4.   

    说具体点就是  比如 用户表里有字段   "权限"(名字你随便取) 管理员   把"权限"字段射成“1” 一般用户为0
    在jsp页面
    你通过a= request,getparamter("权限")得到这个字段,然后在用 <%if (a==1){%><tr>......</tr><%}%>既权限为1时显示<tr></tr>里边的内容
      

  5.   

    角色,role, for example: student, teacher.
    能用配置文件嗎? 不搞複雜得權限管理? 或者其他簡單得方法?
      

  6.   

    我們web tier會使用struts2, 現在想方案解決配置頁面問題. 希望有簡單可行得方法.
      

  7.   

    可以建用户表 存储用户信息
    建用户权限表 用来存储用户权限信息
    (建表不一定仅是一张,根据实际情况需要多张)每次用户登录时,将用户权限信息存到session中,
    在页面中可以自定义一个标签来圈定要进行权限区分的部分,来判定用户是否能够查看圈定的部分当然,除了以上部分你还需要考虑很多东西,
    权限信息的定义,如何与需要权限区分的模块及相关页面进行关联
    如何给用户授权,这是一个麻烦的部分
    同时可以用角色的方式来弥补授权时的麻烦,可以给用户指定角色,再给角色授权这些仅是大体的思路,具体的需要根据实际情况进行调整,希望对你能有帮助
      

  8.   

    恩..给你个简单的思路 ..
    用户表中放一个字段type表示 权限:如 1(管理员),2(权限A),3(权限B)
    登陆的时候放入SESSION ...查询页面时:判断SESSION
    根据不同type执行不同权限 ..
      

  9.   

    thanks,權限管理方案也是很不錯. any other ideas? please provide more advices.
      

  10.   

    more advices comes from more practice  ...
      

  11.   

    虽然不建议在jsp中写java语句,但还是用做一个比方吧:
    登录时将用户的权限从数据库中读处出来,保存到session中,比如:session.setAttribute("power","admin")(对应管理员,admin是从数据库中读取出来的),
       session.setAttribute("power","common");(对应普通用户)
       一个系统除了管理员、普通用户可能还有更多,不一一例举(可以结合1楼的角色、权限控制)。
    在jsp页面,生成视图时进行判断:比如:
    <% String power = (String)session.getAttribute("power"); 
       if("admin".equals(power)){%>
       管理员对应的html代码...
    <% 
      }
       else if("common".equals(power)){
    %>
      普通用户对应的html代码...
    <%
    }
    %>
      

  12.   

    这个说的不正确了,应该是基于动作的。比如struts,是基于action的,点击一个按钮,会触发一个action,这样就可以用拦截器或者filter进行拦截并进行权限处理,过滤。
      

  13.   

    any other solutions? i want to get more solutions to refer