发送到浏览器的 HttpCookie 中的日期错误

Wrong date in HttpCookie sending to browser

我在向浏览器发送 HttpCookie 到期时遇到问题,我正在使用 DateTime.Now 设置它,但在各种浏览器中出现不同的值。

这是代码以及浏览器中显示的内容。

PS: 我测试了以下浏览器(Chrome, Firefox 和 Edge) 出现同样的问题

var expiration = DateTime.Now.AddMinutes(30);
var authTicket = new FormsAuthenticationTicket(1, usr.Id.ToString(), DateTime.Today, expiration, true, string.Empty);
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);

var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
{
   Secure = Request.RequireSSL(),
   Path = FormsAuthentication.FormsCookiePath,
   Domain = FormsAuthentication.CookieDomain,
   Expires = authTicket.Expiration
 };

 Response.Cookies.Add(cookie);

Cookie in browser

Debugging the expiration time

请注意下面的代码:

var authTicket = new FormsAuthenticationTicket(1, usr.Id.ToString(), DateTime.Today, expiration, true, string.Empty);

在第三个参数上,您使用的是 DateTime.Today,正确的方法是使用 DateTime.Now

这应该是正确的代码:

var authTicket = new FormsAuthenticationTicket(1, usr.Id.ToString(), DateTime.Now, expiration, true, string.Empty);

请告诉我它是否适合您。 问候。