浏览器关闭时使ASPXAUTH Cookie失效

时间:2015-05-18 15:45:25

标签: c# cookies forms-authentication .aspxauth

我正在使用以下代码创建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未过期。我把它设置为非持久性。我也确定所有浏览器实例都已关闭。

我错过了什么?

1 个答案:

答案 0 :(得分:3)

由于您手动设置了Expires属性,浏览器会在客户端创建一个持久性cookie。

只是不要在那里设置任何值,注释掉那一行。这将创建一个cookie,只要浏览器打开就会持续。

请注意,通常意味着即使用户关闭了标签页,Cookie仍然存在。当浏览器进程关闭并重新启动时,它会消失。