我的服务器是GoDaddy服务器使用太平洋夏令时(-7:00)。我的饼干过期15分钟。
我看到当前GMT时间是2023年7月25日星期二上午5:35格林威治标准时间(GMT),服务器中的时间现在是2023年7月24日下午10:35
在我的ASP.NETCore应用程序中,当我设置一个cookie时,它设置一个cookie,它设置为
_Gex.Application=chunks-2; expires=Tue, 25 Jul 2023 05:50:54 GMT;
字符串
但在浏览器中,此Cookie不会保存在Chrome中。如果我把时间增加到2天,它就能工作了。
1条答案
按热度按时间bfrts1fy1#
我们知道
C#
中的DateTime.Now()
获取当前服务器的时间,Javascript
中的Date()
获取客户端的时间。如果访问网站的用户来自不同的时区,那么我认为有必要计算当前用户的设备时间与服务时间的偏移。
我们可以在用户登录时通过Date()方法从浏览器设备获取当前用户时间,我们可以在login方法中添加逻辑计算偏移量,并创建新的Claim并存储。
然后,即使用户的设备时间错误,cookie也可以在15分钟后过期。
我们可以创建一个中间件来读取时间的偏移量并设置cookie过期时间。