今天在做网页权限的时候发现一个问题..(不知道是不是我有错误的地方.)
    1.我为网站admin文件夹.设置了.
      <authorization>
<deny users="?"/>
<allow roles="admin"/>
<deny users="*"/>
      </authorization>
    2.这样的确让角色不是 admin 的用户不能访问 该目录下的页面.
    
     开始觉的没什么问题的.    现在要做另一个网页也是在admin文件夹下.不同的是.我没为网页设置连接.(URL访问)
    问题就来了.
    测试.
    1.试用非admin角色登陆 访问.==>>提示没有权限.( 嘿嘿 OK哦.爽)
    2.试用admin角色登陆访问 ==>>成功访问.(搞定.收工..!)
    (突然想在试下非admin角色)
    3 经过admin角色登陆过后.在重新登陆非admin角色.登陆访问==>>额..访问成功.!(ORZ...怎么回事.!!!)
      
     开始郁闷....
       查看代码..都没错误啊.!
       调试.运行..发现..
      试用过admin角色登陆访问过后..再试用非admin角色访问时.
      Application_AuthenticateRequest()不被执行..!
      窒息.... 
     大家有碰过这个情况吗??       囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧
    

解决方案 »

  1.   

            Session.Clear();
            System.Web.Security.FormsAuthentication.SignOut();
        
            即使没有做清空..
            在登陆的情况之下..信息也是刷新了的啊.
            
            奇怪的地方还有就是.
            url跳过去的地方的.连接 点击 都是显示没有权限(同样在admin下~)
      

  2.   

    在.net中的global.asax中有Application_AuthenticateRequest事件和Application_BeginRequest事件是在每次访问aspx文件都会触发。但是Application_BeginRequest中不能对已经经过FROMS身份验证的身份ticket票进行识别。所以只能放到Application_AuthenticateRequest中去,换句话说,Application_AuthenticateRequest对已经经过Forms身份验证的身份ticket票进行识别.第一次认证后ticket票会一直存在.
      

  3.   

    呵呵,答案已经出来了,我就不浪费CSDN的资源了。