浏览器关闭时使 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 仍然存在。浏览器进程关闭重启后消失