表单验证注销,浏览器后退按钮失效
来源:广州中睿信息技术有限公司
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 2158

  问题描述:

  在最近测试的一个Web项目(使用表单验证)中,遇到注销后使用浏览器后退,还是能退回到注销前的页面,虽然不可以进行操作,但总归不是安全的。

  问题原因:

  页面还保存在浏览器缓存中

  解决方案:

  一个可行的方案是为网站增加一个Exit.aspx页面,在其Page_Load方法里执行FormsAuthentication.SignOut(),同时使用JavaScript跳转到Logon页面。而SignOut按钮的唯一作用就是在客户端跳转到该Exit.aspx页面,而不是直接执行FormsAuthentication.SignOut():

  1. Web.config如下,指明authentication方式为forms,loginUrl为logon.aspx。拒绝一切未授权用户

  

 

  2. Logog.aspx页面如下:   

  可见这里的SignOUt按钮是客户端控件,作用是跳转到Exit.aspx进行注销。由于这里使用的是Window.location跳转,所以在logon.aspx页面后退时,将会后退到exit.aspx而不是default.aspx   3 Exit.aspx:    

  可见,只要用户尝试从logon.aspx回退,都会在这里又重新返回logon.aspx。

  当然还有一种更保险的方法,就是在客户log out以后,直接将浏览器关闭。       

 本站技术原创栏目文章均为中睿原创或编译,转载请注明:文章来自中睿,本站保留追究责任的权利。