【问题标题】:Setting expires on asp cookies with keys won't work在带有密钥的 asp cookie 上设置过期将不起作用
【发布时间】:2021-05-28 08:08:44
【问题描述】:

我有一个用经典 asp 编写的登录页面。我想将用户登录信息设置到 asp cookie 中,以便他们下次到达页面时保持登录状态 2 周。

问题是当我对包含键的 cookie 设置过期时,当浏览器关闭时 cookie 不会保留。

这是我的代码示例:

response.cookies("user")("userId")=userId
response.cookies("user")("firstName")=firstName
response.cookies("user")("lastName")=lastName
response.cookies("user").expires=dateadd("d",14,now)

设置不带密钥的 cookie 有效,但使用密钥过期时无效。

谁能帮我解决这个问题?

本

【问题讨论】:

    标签: cookies asp-classic


    【解决方案1】:

    这应该可以...只需将过期时间移动到您为密钥设置的第一个值:

    response.cookies("user").expires=dateadd("D",14,Date())
    response.cookies("user")("userId") = userId
    response.cookies("user")("firstName") = firstName
    response.cookies("user")("lastName") = lastName
    

    【讨论】:

    • 这也不行,浏览器关闭时cookies仍然丢失。
    【解决方案2】:

    msigman 的答案很好用。在我的本地服务器上进行了测试。再次关闭和打开浏览器时 Cookie 仍然存在。

    也许添加(子)域名?

    response.cookies("user").domain="example.com"
    response.cookies("user").expires=dateadd("D",14,Date())
    response.cookies("user")("userId") = userId
    response.cookies("user")("firstName") = firstName
    response.cookies("user")("lastName") = lastName
    

    【讨论】:

    • 感谢您的帮助,但这对我不起作用,是否是在服务器上设置的,我使用的是 IIS 7.5 Windows 2008 R2。
    • 网站是否启用了cookies?您的浏览器是否启用了 cookie?这是非常基本的代码,所以我同意问题可能出在服务器软件中。
    【解决方案3】:

    您可以访问您的 IIS 面板吗?我想知道你是否有一个设置让你的 cookie 过期?另一件事可能是尝试对过期时间进行硬编码并对其进行测试以查看它是否也失败了?

    response.cookies("user").expires=#May 30,2021#
    response.cookies("user")("userId") = userId
    response.cookies("user")("firstName") = firstName
    response.cookies("user")("lastName") = lastName
    

    如果不是 IIS 设置,并且进行硬编码日期测试有效,则日期可能与预期不符。这里甚至还有一篇文章:

    HttpCookie Expires and IIS setting

    您也可以尝试这些方法来查看日期的情况,也可能是格式问题,但请尝试这些方法并将它们与您的预期结果进行比较:

    Year(Now) '' Year in 4 digits
    Month(Now) '' Month without leading zero
    Day(Now) '' Day of the month without leading zero
    DateAdd("d", <numofdays>, Now) ''pretty much what you are doing now
    

    这里有一个引用链接: ASP formatting date

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-23
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多