发送到浏览器的 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);
请告诉我它是否适合您。
问候。
我在向浏览器发送 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);
请告诉我它是否适合您。 问候。