2009-10-27 69 views

回答

5

感谢您的所有答复。

代码:

Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1)); 
    Response.Cache.SetNoStore(); 
    Response.AppendHeader("Pragma", "no-cache"); 

我已经使用在页面加载事件的代码。它的工作正常。

0

为什么要防止后退按钮工作。避免阻碍用户使用浏览器正常操作的事情。

相反,您可以检查页面中的会话可用性。如果会话不可用,则将用户重定向到另一个页面。

无论如何这里是关于这个问题的文章。

A Thorough Examination of "Disabling the Back Button."

+1

还有一个比这更基本的问题 - 使用后退按钮不一定会导致访问服务器(通常不会)浏览器将显示本地缓存版本的页面。这就是为什么后退按钮对开发人员来说通常是痛苦的原因。 我怀疑可以做的事情(你可能可以操纵历史进行实验),但总的来说,这是试图处理超出人们易于控制的事情(除非我错过了某些东西......) – Murph 2009-10-27 09:44:26

0

here是解决如何做到这一点,但是请注意,用户可以记住并编写网页的网址你不惯于他注销后看到,所以您应该实现身份验证机制

0

我同意phoenix ...但是有一点是页面会在退出按钮时从缓存中触发,因此您只能在回发期间检查会话有效性......并记住,在该场景中isPostBack将为true 。

您可以使用下面的代码来设置页面过期。如果包含在页面中,则当用户在离开页面后点击返回按钮时将显示页面过期消息。但要小心,他总是能够刷新并且可以再次回到帖子。

注意:在所有其他网页使用的话,会阻碍应用程序的用户...

   Response.AppendHeader("Pragma", "no-cache"); 
       Response.AppendHeader("Cache-Control", "no-cache"); 
       Response.CacheControl = "no-cache"; 
       Response.Expires = -1; 
       Response.ExpiresAbsolute = new DateTime(1900, 1, 1); 
       Response.Cache.SetCacheability(HttpCacheability.NoCache); 
相关问题