如何正确设置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。
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 +客户端的时区