【问题标题】:What could cause Session Cookies to disappear mid-session?什么可能导致会话 Cookie 在会话中消失?
【发布时间】:2009-06-04 23:46:39
【问题描述】:

我有一个 Web 应用程序,它使用会话 cookie 来保持用户的登录状态。当他们登录时,系统会生成一个 GUID,它与数据库中的用户记录相关联。 GUID 然后存储在 cookie 中,以便在每次加载页面时读取它并根据数据库条目进行检查。

设置cookie的代码很简单。

Response.Cookies("UserSession")("ID") = vsSessionCookie
Response.Cookies("UserSession").path = "/"

尽管该系统已使用多年,但新客户已开始抱怨出现错误。当我们在错误发生时记录有关错误的信息(包括 cookie)时,我看到会话 cookie 根本不再存在。查看代码确实表明,如果会话 cookie 走动,应用程序会出错。

请注意,应用程序使用的具有到期日期的持久性 cookie 会保留。

我知道它应该更优雅地处理这个问题,但我感到困惑的问题是什么可能导致会话 cookie 消失。这不是用户在一段时间内不活动的情况,因为他们声称这是在他们使用系统时随机发生的。不幸的是,它们并没有更具体,但在一种情况下,我发现它发生在他们在系统中运行报告之后。此报告显示在一个新的浏览器窗口中(使用 Window.Open 在 JavaScript 中打开),因此看起来关闭此窗口会杀死原始窗口中的会话 cookie。

该系统(很遗憾)仅在 IE 中有效,但我找不到任何会导致此行为的设置,并且它对许多其他客户端都有效。

是否有可能导致这种行为的设置?为什么它应该对某些客户有效,而对其他客户无效?

也许它与关闭窗口无关,并且其他一些进程正在清除会话中的会话cookie,但是什么?

这么多问题....抱歉,但如果有人对此情况有任何经验,那将有很大帮助!

对于信息,Web 系统是用 ASP.Net 编写的。还有一个用经典 ASP 编写的系统对客户端也有同样的影响,所以我不认为 Web 系统本身有问题。

【问题讨论】:

    标签: internet-explorer cookies session


    【解决方案1】:

    是否所有客户端都使用相同版本的 IE?我还在 Windows 防病毒软件上看到了清除 cookie。

    【讨论】:

    • 我与客户没有直接联系。做的人,目前似乎不知道!一旦我找到有关客户设置的更多信息,我将更新帖子。
    【解决方案2】:

    我遇到过这样的问题,从 IE6 到现在 IE8。 问题似乎是当你启动 IE 时(第一页是什么),如果它是一个本地页面(例如 file://c:\a.htm)然后从那里你去实际的网站,(它仍然可以)然后在您的网站中,它会打开一个弹出窗口,然后当您关闭弹出窗口时(即会话 cookie 被破坏时,因为 cookie 中的所有数据都消失了,我被注销了。所以我的解决方案是(开始 > 运行 > 'iexplore http://www.mywebapp-site.com')

    但我也遇到了未设置cookie中的某些数据集的问题,仍然不知道..为什么..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多