Fra*_*kly 4 c# cookies asp.net-core-mvc asp.net-core
我正在尝试从后端(Asp.Net核心)向浏览器设置Cookie,该Cookie应该在第二天的同一时间减去5分钟后过期。这是来自控制器的C#代码
HttpContext.Response.Cookies.Append("MyCookie",
"test cookie value",
new Microsoft.AspNetCore.Http.CookieOptions
{
Expires = DateTimeOffset.UtcNow.AddDays(1).AddMinutes(-5)
});
Run Code Online (Sandbox Code Playgroud)
但是对于浏览器,它带有错误的到期日期时间。
例如,如果cookie过期日期设置为2016-09-28 19:15,则在浏览器上它将在2016-09-29T17:15过期,并且少2小时,这很奇怪,因为我的TimeZone为+1。
小智 5
DateTimeOffset.UtcNow是DateTimeOffset.Now + yourTimezone。
所以
DateTimeOffset.UtcNow.AddDays(1).AddMinutes(-5)
Run Code Online (Sandbox Code Playgroud)
将返回与
DateTimeOffset.Now.AddDays(1).AddMinutes(-5).AddHours(-2 /*your Timezone*/)
Run Code Online (Sandbox Code Playgroud)
浏览器显示一切正常。
将您的代码更改为
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
Run Code Online (Sandbox Code Playgroud)
或使用UtcNow +客户的时区
归档时间: |
|
查看次数: |
4408 次 |
最近记录: |