如何正确设置cookie的过期时间.. NET Core MVC

本文关键字:时间 NET Core MVC 过期 何正确 设置 cookie | 更新日期: 2023-09-27 18:09:32

我正在尝试从后端(Asp. net)设置Cookie到浏览器。净核心),应该在第二天的同一时间减5分钟到期。下面是controller

的c#代码
HttpContext.Response.Cookies.Append("MyCookie",
       "test cookie value",
       new Microsoft.AspNetCore.Http.CookieOptions
       {
             Expires = DateTimeOffset.UtcNow.AddDays(1).AddMinutes(-5)
       });

但是对于浏览器来说,过期日期是错误的。

例如,如果cookie过期日期设置为2016-09-28 19:15,在浏览器上,它将在2016-09-29T17:15过期,并且少了2小时,这很奇怪,因为我的时区是+1。

如何正确设置cookie的过期时间.. NET Core MVC

DateTimeOffset。UtcNow是DateTimeOffset。Now + yourTimezone.

DateTimeOffset.UtcNow.AddDays(1).AddMinutes(-5)

将返回与

相同的值
DateTimeOffset.Now.AddDays(1).AddMinutes(-5).AddHours(-2 /*your Timezone*/)

浏览器显示一切正常。

将代码改为

HttpContext.Response.Cookies.Append("MyCookie",
   "test cookie value",
   new Microsoft.AspNetCore.Http.CookieOptions
   {
         Expires = DateTimeOffset.Now.AddDays(1).AddMinutes(-5)
   });
//if you want to have the same expiration date as your server's

或使用UtcNow +客户端的时区