我该如何控制,不同角色访问不同页面
我有2种角色的登陆用户
一个经理
一个普通
不同角色可以访问到不同页面的
例如:
经理角色登陆用户可以访问A.ASPX和B.ASPX等页面
普通角色登陆用户可以访问A.ASPX和C.ASPX等页面怎么防止经理角色的登陆用户访问C.ASPX页面
我知道可以在程序中通过逻辑控制根据不同角色分别转向不同页面
如果经理角色用户直接在IE浏览器上输入C.ASPX不就也可以访问了吗我该如何控制,不同角色访问不同页面
我想到的方式为:在用户登陆时创建会话,在此会话中存入登陆用户的角色信息
在每一个页面的LOAD过程中判断会话中的信息,来控制请问还有什么其他方法吗
ASP.NET中有没有其他方式控制?
谢谢

解决方案 »

  1.   

    你学过ASP吗。 用COOKIE也可以啊。。表里加一个用户的等级字段。。设置页面权限然后和用户的等级做对比。很容易啊。
      

  2.   


    http://support.microsoft.com/default.aspx?scid=kb;zh-cn;311495http://www.microsoft.com/china/msdn/library/architecture/architecture/architecturetopic/BuildSucApp/BSAAsecmod03.mspx
      

  3.   

    基于角色的身份验证?是在web.config中控制吗哪里有资料
      

  4.   

    数据表
    role 用户权限类别表   1.经理 2.用户
    user 用户表
    module    模块表   相应模块对应相应的url。
    user_role    用户对应的权限。
    User_Module  用户对应的模块。以上可以动态生成对应用户权限的导航条了,可以跟csdn左侧的那个导航一样。验证的时候页面继承一个BasePage的权限验证类,BasePage用来根据用户权限判断用户有权限访问页面。
      

  5.   

    要么表,每次页面读取时候判断,要们第一次登陆时候cookie
      

  6.   

    数据库里面加标志位,然后在B和C页面内分别在LOAD事件里判断那个标志,就可以了。
      

  7.   

    楼主的思路是正确的!我也是这样做的:
        在数据库里建里一个表用来储存你的前端页面名。
        再建立一个角色表,将每个角色能操作的页面名写到这个表里。
        再建用户表,将用户与角色关联。
    再你的程序里写一个CheckAuth类用来判断某个角色能不能打开某个页面(这个sql你应该回写吧!)
        在登录时,将此用户的角色保存到Session对象里。
    在每次打开新页面之前调用CheckAuth类来判断,如果返回真就转到新页面,否则就提示错误!
      

  8.   

    可以用cookie或者session来处理这个问题
    将用户名和密码还有权限写进cookie,在A.ASPX、B.ASPX、C.ASPX里来判断用户名、密码、权限都相符的才能打开本页面
    也可以直接写进session,然后直接根据session值来判断就好了
      

  9.   

    session ("角色")LOGIN时,存SESSION访问时识别在页面中load中,
    if session(session名)<>"角色名"
    response.end
      

  10.   

    to:72615
    谢谢你的提示
    按你的思路
    我先建立表
    不同角色,能操作的页面名写到这个表里
    我再到Global文件中的事件Application_OnStart()
    把表中数据读出来放到CACHE中由于我的页面不太多
    我想把表中的数据放在WEB.CONFIG中,这样就可以不建立表了基于角色的身份验证?在ASP.NET中有没有自己带的验证机制?
    哪里有资料谢谢