【问题标题】:Should I clean up session cookies on logout?我应该在注销时清理会话 cookie 吗?
【发布时间】:2015-01-23 20:33:43
【问题描述】:

Chrome 似乎没有删除会话 cookie,(请参阅this question)这包括 IIS 为会话处理设置的那些。

当我查看我的页面的 cookie 存储时,我看到了大量旧的这些 ASP 会话 id cookie。当我处理注销时,使用 JavaScript 从浏览器中删除这些是否是个好主意?

我能否请您在回答时提供推理,以便其他读者能够理解您为什么支持或反对?

【问题讨论】:

    标签: javascript google-chrome asp-classic session-cookies


    【解决方案1】:

    如果它们是经典的 asp 会话,它们将根据您为它们设置的会话超时属性或您设置的默认 IIS 会话超时变量过期。

    您将无法单独使用 JS 来操作会话 cookie,因为它们是使用随机名称生成的。您可以使用 JS 删除 cookie,但使用 Session.Abandon 方法要容易得多,并且 ASP 应该只删除会话。如果由于某种原因会话仍未被删除,请尝试隐身浏览器,因为这可能是您的浏览器无法正确删除 cookie 的问题。

    最后,您可以禁用部分 ASP 应用程序的会话状态。专门针对不需要会话的站点部分。您甚至可以对它感到疯狂,并为会话使用不同的子域,这样您就不会在每个请求中传递 cookie。

    【讨论】:

    • 对 document.cookie 的内容运行正则表达式以查找所有以“ASPSESSIONID”开头的所有 cookie 似乎是一种查找它们的简单方法。
    • 关键问题是这些是会话 cookie,因此 IIS 没有为它们设置到期时间。 Chrome 似乎只删除过期的 cookie。听到的关键问题是我应该整理服务器在其会话管理中创建的会话 cookie 吗?
    • 服务器性能无关紧要。因为 IIS 将在会话到期时释放会话。我的意思是,如果 IIS 以 20 分钟的超时时间跟踪会话,那么 20 分钟后,会话 cookie 对 IIS 没有任何意义,并且会话已过期。至于 Chrome 没有清理会话的问题,您可以使用您所说的 javascript 正则表达式方法,但唯一的好处是减少每个请求发送的标头信息量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 2011-07-05
    • 2015-12-26
    相关资源
    最近更新 更多