我正在使用以下代码创建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未过期。我把它设置为非持久性。我也确定所有浏览器实例都已关闭。
我错过了什么?
答案 0 :(得分:3)
由于您手动设置了Expires
属性,浏览器会在客户端创建一个持久性cookie。
只是不要在那里设置任何值,注释掉那一行。这将创建一个cookie,只要浏览器打开就会持续。
请注意,通常意味着即使用户关闭了标签页,Cookie仍然存在。当浏览器进程关闭并重新启动时,它会消失。