【问题标题】:How to avoid the cache after user logout?用户注销后如何避免缓存?
【发布时间】:2014-04-01 02:55:09
【问题描述】:

我已使用此代码使最终用户在注销后无法使用浏览器后退按钮访问应用程序页面。如果最终用户单击浏览器后退按钮,则需要再次将用户踢回 ApplcationLogin 页面。这工作正常,但点击后退按钮后,它会给出一个页面(不是应用程序登录页面)。如果用户点击再次尝试按钮,应用程序将重新登录,此页面限制文档过期消息与尝试再次按钮。这是代码。

  res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
                res.setHeader("Pragma", "no-cache"); // HTTP 1.0.
                res.setDateHeader("Expires", 0); // Proxies
                chain.doFilter(request, response);

【问题讨论】:

  • 信息不足。你在用 CMA 吗?您是否使会话无效?
  • 您可能没有在注销时使会话(在服务器端)无效,否则服务器将不会提供登录页面。
  • 我的会话也无效

标签: java browser-cache cache-control


【解决方案1】:

您很可能使用 HTTP 基本身份验证。使用基本身份验证,没有真正的方法可以清除浏览器中的凭据。当访问某些受保护的内容时,浏览器只会再次发送凭据。这个过程和你的缓存头完全没有关系。

如果是这个原因,您可以切换到基于表单的身份验证。我们所做的另一个技巧是发送重定向到 dummy:dummy@xy.com/loggedout.jsp 以从浏览器中清除用户密码凭据,但是,这并不完美并且会使用户感到困惑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-26
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    相关资源
    最近更新 更多