我有一个web应用程序,它使用会话cookie来保持用户登录。当他们登录时,系统会生成一个与数据库中的用户记录关联的GUID。然后将GUID存储在cookie中,以便随后可以在每次加载页面时读取并根据数据库条目进行检查。什么会导致Session Cookies在会话中消失?
设置cookie的代码非常简单。
Response.Cookies("UserSession")("ID") = vsSessionCookie
Response.Cookies("UserSession").path = "/"
尽管系统已使用多年,但新客户端已开始抱怨发生错误。当我们记录有关错误的信息(包括Cookie)时,我发现会话cookie不再存在。看看代码确实表明,如果会话cookie正在散步,那么应用程序出错。
请注意,应用程序使用的持久性cookie会保留。
我知道它应该更加优雅地处理这个问题,但是我困惑的问题是什么会导致会话cookie消失。这不是用户在一段时间内处于非活动状态的情况,因为他们声称在使用系统时它会随机发生。不幸的是,它们并没有更具体,但在一个案例中,我发现它是在系统中运行报告后发生的。此报告显示在新的浏览器窗口中(使用Window.Open在JavaScript中打开),因此看起来像关闭此窗口会在原始窗口中杀死会话cookie。
该系统(可悲)只适用于IE浏览器,但我找不到任何会导致此行为的设置,并且它可以为许多其他客户端快乐地工作。
是否有可能导致此行为的设置?为什么它应该适用于某些客户,而不是其他客户?
也许它与关闭窗口无关,而其他一些进程正在清理session session中的会话cookie,但是什么?
这么多的问题....对不起,但如果任何人有任何经验的情况下,它会帮助很多!
有关信息,网络系统是用ASP.Net编写的。还有一个用传统的ASP编写的系统对客户端来说也是一样,所以我不相信网络系统本身存在问题。
我没有与直接接触客户,这个人,目前似乎不知道!一旦我找到关于客户设置的更多信息,我会更新这个帖子。 – 2009-02-05 15:41:21