【问题标题】:Session variables in Google Chrome persist after browser closes浏览器关闭后,Google Chrome 中的会话变量仍然存在
【发布时间】:2014-06-26 11:24:37
【问题描述】:

我正在使用会话变量来存储一些数据。我希望在浏览器关闭或会话超时时丢失数据。在 IE 和 FF 中一切正常,但 chrome 在浏览器关闭后仍保留会话变量。

var myName = Session["Name"];

if (myName == null) {
  myName = "defaultName";

}

如果我关闭并重新打开 chrome,它不会落入 if 块,因为会话变量是持久的。 有没有办法确保 google 的 chrome 关闭后会话变量丢失?

【问题讨论】:

  • 也许你还有另一个谷歌浏览器窗口仍然打开或者例如托盘通知图标,这样虽然谷歌浏览器似乎已关闭,但进程仍在运行? (尝试使用任务管理器检查 Chrome 进程)。

标签: asp.net asp.net-mvc google-chrome session session-variables


【解决方案1】:

记住 HTTP 是一种无状态协议,因此您无法确定用户是关闭了浏览器还是打开了浏览器窗口。这就是我们使用会话超时的原因 - 您可以减少超时以关闭非活动会话,但这可能会导致其他用户的会话超时。

关闭浏览器并不意味着 Session 被销毁。但是会在闲置一段时间后被销毁。

阅读此内容:Session Handling,了解如何更好地处理会话超时的一些解决方法

【讨论】:

  • 是的,我以为是这样的。我很好奇为什么关闭 firefox 或 IE 会立即终止会话,而使用 chrome 一段时间后它会被破坏。
  • 正确,需要管理会话超时。较高版本的 IE 或 Firefox 可能会立即终止会话,但较低版本可能不会。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-23
  • 2012-03-05
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多