浏览器关闭时使 ASPXAUTH Cookie 过期
Expire ASPXAUTH Cookie when browser closes
我正在使用以下代码创建 ASPXAUTH cookie
var authTicket = new FormsAuthenticationTicket(2, model.Name, DateTime.Now, DateTime.Now.AddMinutes(ConfigSettings.SessionTimeout),
false, result.UniqueId.ToString());
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(authTicket))
{
HttpOnly = true,
Expires = authTicket.Expiration
};
Response.AppendCookie(authCookie);
当用户关闭浏览器(IE 和 Chrome)并再次登录时,会话仍然有效,APSXAUTH cookie 没有过期。我已将其设置为非持久性。我还确定所有浏览器实例都已关闭。
我错过了什么?
由于您手动设置 Expires
属性,浏览器会在客户端创建一个持久性 cookie。
只是不要在那里设置任何值,注释掉该行。这将创建一个 cookie,只要浏览器打开就会持续存在。
请注意,通常这意味着即使用户关闭了选项卡,cookie 仍然存在。浏览器进程关闭重启后消失
我正在使用以下代码创建 ASPXAUTH cookie
var authTicket = new FormsAuthenticationTicket(2, model.Name, DateTime.Now, DateTime.Now.AddMinutes(ConfigSettings.SessionTimeout),
false, result.UniqueId.ToString());
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(authTicket))
{
HttpOnly = true,
Expires = authTicket.Expiration
};
Response.AppendCookie(authCookie);
当用户关闭浏览器(IE 和 Chrome)并再次登录时,会话仍然有效,APSXAUTH cookie 没有过期。我已将其设置为非持久性。我还确定所有浏览器实例都已关闭。
我错过了什么?
由于您手动设置 Expires
属性,浏览器会在客户端创建一个持久性 cookie。
只是不要在那里设置任何值,注释掉该行。这将创建一个 cookie,只要浏览器打开就会持续存在。
请注意,通常这意味着即使用户关闭了选项卡,cookie 仍然存在。浏览器进程关闭重启后消失