5

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

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

我了解我们无法禁用后退按钮(根据 SO 答案)。

目前我在不同场景中有大量页面,所以我无法修改每一页。

我试过的

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

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

4

2 回答 2

5

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

//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.
于 2013-07-22T05:11:50.337 回答
0

这是所有答案的链接。

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

我尝试了所有解决方案,但浏览器不兼容。

所以更好的方法是进行 Ajax 发布或在页面加载中检查 session var null 与否。

这个tip也有一个限制,当用户点击浏览器的返回按钮时,由于执行了WebMethod,返回页面显示1秒或半秒。但在任何浏览器的所有版本中都可以肯定地工作!!

于 2014-07-23T10:31:48.760 回答