注销后的浏览器后退按钮


Browser back button after log out

如何防止浏览器在注销后使用页面的缓存副本?

当用户仍然注销时,他们可以使用后退按钮访问以前的页面。

我知道我们不能禁用后退按钮(根据SO的回答)。

目前,我在不同的场景中有大量的页面,所以我不能修改每个页面。

我尝试过的

  1. 设置过期标头(我需要在每个页面上都设置吗?如果我这样做,浏览器会缓存页面内容吗?(因为如果用户登录,我需要浏览器缓存内容)
  2. 我已经有了一个轮询系统(但仍有延迟需要检测)
  3. 基于Javascript的解决方案(它有效,但用户仍然可以使用历史选项进行导航或长按后退按钮)

我真的被困在这里了,你能帮我解决这个问题吗?

我认为这段代码会对您有所帮助,在父控制器构造函数中使用这段代码。

//Log out Back
header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
header("Pragma: no-cache"); // HTTP 1.0.
header("Expires: 0"); // Proxies.

这是回答所有问题的链接。

http://www.codeproject.com/Tips/549347/Browser-Back-Button-Issue-After-Logout

我尝试了最重要的解决方案,但浏览器不兼容。

所以,更好的方法是对会话var是否为null进行Ajax后期或页面加载检查。

此技巧还有一个限制,即当用户单击浏览器的后退按钮时,由于执行WebMethod,后退页面会显示1或半秒。但在任何浏览器的所有版本中都可以使用!!