gpt4 book ai didi

c# - FormsAuthenticationTicket 过期太早

转载 作者:太空狗 更新时间:2023-10-29 19:41:51 26 4
gpt4 key购买 nike

这是我在登录成功时调用的函数。 (我对这个 FormAuthentication 很陌生)

public static void CreateLoginCookie(User u)
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(u.Id.ToString(), true, 9*60);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket) { Expires = DateTime.Now.AddHours(9) };
HttpContext.Current.Response.Cookies.Add(cookie);
}

在我的 web.config 中

<authentication mode="Forms">
<forms loginUrl="~/Default/Login" timeout="540" />
</authentication>

我希望用户保持登录状态 9 小时,但它不起作用。他们会在一两个小时后注销。

有人能告诉我我错过了什么吗?

最佳答案

这可能是因为应用程序池回收而发生的。

身份验证 cookie 使用机器 key 加密。似乎默认情况下,这些机器 key 是在每次应用程序池重新启动时生成的。然后你的应用程序空闲一段时间(在应用程序池设置中配置)你的应用程序池被回收。

因此需要生成静态机器 key 。

这个问题与你的有关: Can a FormsAuthenticationTicket survive an app pool recycle?

关于c# - FormsAuthenticationTicket 过期太早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4881864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com