Cookie,服务器时间与客户端时间

时间:2013-12-18 07:56:44

标签: c# asp.net cookies

我这里有一个非常奇怪的案例

  1. 我使用System.DateTime.Now.AddSeconds(30)
  2. 设置我的Cookie到期日期
  3. 客户端PC日期时间比服务器日期时间快1小时
  4. 情景1:

    • 使用谷歌浏览器试用网页
    • 网页采用客户日期时间来设置Cookie的到期日期
    • 如果客户端日期时间比服务器日期时间慢
    • 也没问题

    情景2:

    • 使用Internet Explorer尝试网页
    • 网页使用SERVER日期时间来设置Cookie的到期日期,但由于客户日期时间比服务器日期时间快1小时,因此Cookie会立即过期。
    • 问题解决如果更改客户端日期时间与服务器日期时间相同或更慢。

    B:

    1. 通过使用javascript和ASP获取客户端日期时间来设置cookie:hiddenField
    2. 客户端PC日期时间比服务器日期时间快1小时
    3. 情景1:

      • 列表项
      • 使用谷歌浏览器试用网页
      • 没问题。
      • 但如果客户日期时间慢于服务器日期时间,则Cookie会立即过期

      情景2:

      • 使用Internet Explorer尝试网页
      • 无论客户端日期时间是否比服务器日期时间更快或更慢,都没问题

      任何解决此问题的建议?过去两周一直困扰我:(

      P / S:服务器时间为+8 GMT。我的客户端也是+8 GMT,但速度提高了1小时

1 个答案:

答案 0 :(得分:0)

请不要使用客户日期时间,这可能是错误的。在您的情况下,最好的办法是使用UTC日期时间而不是客户端或服务器日期时间,因为UTC时间在任何地方都是相同的。

使用System.DateTime.UTCNow.AddSeconds(30)

在javascript中,如果需要,请使用UTC日期,如:

var isoDate = new Date('yourdatehere').toISOString();