作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我在登录成功时调用的函数。 (我对这个 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/
每当用户旋转手机时,我都需要读取 DIV 的像素宽度。在 iOS 上,以下代码将在方向完成后打印出 DIV 的宽度。但是,在 Android 上,代码将在方向开始之前打印出 DIV 的宽度。 HTML
我的网站正在使用jquery.load()在页面的一大块上进行导航。我真的很欣赏只包含加载内容的特定部分的能力,这里是 id="content"的 div: $(frame_selector).loa
我是一名优秀的程序员,十分优秀!