我用的是.net 2003
有两个页面
登陆页面A,登陆之后进入的页面B
我的登陆验证是用session做的我在B里面放有一个退出按钮,当点击该按钮的时候
session.removeall()
session.abandon()
然后redirect到A这些登陆验证跳转都没问题,问题是,我进行以下步骤:
1。通过登陆界面A,验证成功进入页面B
2。在B中点击退出按钮,退回到登陆页面A
3。浏览器不关,我在这个时候直接输入页面B的地址,它居然可以直接进入页面B
注意,我如果不先进入过页面B,比如说我第一次就直接输入页面B的地址,是不能进去的,这个没问题
关键是:在我上面所说的3个步骤,在第三步中,我直接输入页面B的地址,它居然不触发B页面的page_onLoad函数,也就是说,系统是类似于直接读一个缓存那样把我的页面装载近来的,只因为我之前登陆成功过,所以根本不触发任何事件请问,我怎么避免这种情况?我希望在第三步中,直接输入页面地址B的时候,系统也能老老实实的执行我的page_onload函数。是不是我需要在页面B的退出触发事件的时候,把一个什么缓存清空?如果是,请教一下怎么做
有两个页面
登陆页面A,登陆之后进入的页面B
我的登陆验证是用session做的我在B里面放有一个退出按钮,当点击该按钮的时候
session.removeall()
session.abandon()
然后redirect到A这些登陆验证跳转都没问题,问题是,我进行以下步骤:
1。通过登陆界面A,验证成功进入页面B
2。在B中点击退出按钮,退回到登陆页面A
3。浏览器不关,我在这个时候直接输入页面B的地址,它居然可以直接进入页面B
注意,我如果不先进入过页面B,比如说我第一次就直接输入页面B的地址,是不能进去的,这个没问题
关键是:在我上面所说的3个步骤,在第三步中,我直接输入页面B的地址,它居然不触发B页面的page_onLoad函数,也就是说,系统是类似于直接读一个缓存那样把我的页面装载近来的,只因为我之前登陆成功过,所以根本不触发任何事件请问,我怎么避免这种情况?我希望在第三步中,直接输入页面地址B的时候,系统也能老老实实的执行我的page_onload函数。是不是我需要在页面B的退出触发事件的时候,把一个什么缓存清空?如果是,请教一下怎么做
IE--工具--Internet选项--常规 -- Internet临时文件 --> 删除文件
... Page_Load()
{
Response.Expires = -1;
}
再试试这个
<Meta http-equiv="Pragma" Content="No-cach">
if (Session("islogin") == true)
Session("islogin") = false;
你在转页面的时候是不是用了上面的语句
如果是的话 改成window.location='xxx.aspx'