【问题标题】:Expire ASPXAUTH Cookie when browser closes浏览器关闭时过期 ASPXAUTH Cookie
【发布时间】:2015-07-30 05:09:39
【问题描述】:

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

我错过了什么?

【问题讨论】:

    标签: c# cookies forms-authentication .aspxauth


    【解决方案1】:

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

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

    请注意,通常这意味着即使用户关闭选项卡,cookie 仍然存在。当浏览器进程关闭并重新启动时它会消失。

    【讨论】:

    • 我遇到了同样的问题。我的 FormsAuthenticationTicket 是通过 [使用 System.Web.Security ],因此我不能只评论那一行(课程会出错)是否有其他方法可以不设置 APSXAUTH 的有效期?
    猜你喜欢
    • 1970-01-01
    • 2021-12-22
    • 2015-08-12
    • 2011-04-21
    • 2012-05-31
    • 2012-08-20
    • 2014-08-14
    • 2012-12-02
    • 1970-01-01
    相关资源
    最近更新 更多