c# - 浏览器关闭时使 ASPXAUTH Cookie 过期

标签 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)并再次登录时, session 仍然有效,APSXAUTH cookie 没有过期。我已将其设置为非持久性。我也确定所有浏览器实例都已关闭。

我错过了什么?

最佳答案

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

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

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

关于c# - 浏览器关闭时使 ASPXAUTH Cookie 过期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307563/

相关文章:

c# - 创建一个算法以根据项目类型交替列表项目

c# - RavenDb 空间查询

c# - 如何找到旧密码让用户更改它

ruby-on-rails - Rails 身份验证 token 和 Ajax

c# - dataSet.RejectChanges() 抛出异常

javascript - 如何在前端代码中检索服务器端设置的cookie?

javascript - 如何正确获取javascript Cookie?

node.js - Heroku connect.sessions() 内存泄漏,未缩放

asp.net - 使用 AD 进行表单例份验证

c# - Visual Studio Code .NET Core 调试器未命中断点