我有一个ASP.NET MVC 4项目,用简单的身份验证。
我试图让我的网站在用户勾选“记住我”复选框时自动登录。 但是我遇到了问题。 关闭浏览器并重新打开后,用户从未登录过。
在查看(http://forums.asp.net/t/1654606.aspx#4310292)之后,我添加了一个由IIS生成的机器密钥。 我已经禁用了“运行时自动生成”和“为每个应用程序生成唯一密钥”,然后生成了密钥)。 不幸的是,这没有起作用。
查看使用ASP.NET MVC身份验证的“记住我”未能正常工作,我添加了一行FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe)但也没用,所以我现在将其注释掉了。
我尝试了ASP.NET MVC RememberMe上给出的答案,但似乎也不起作用。我是否忽略了一些明显的东西?
//FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
if (model.RememberMe)
{
//int timeout = model.RememberMe ? 525600 : 2; // Timeout in minutes,525600 = 365 days
int timeout = 525600;
var ticket = new FormsAuthenticationTicket(model.UserName, model.RememberMe, timeout);
string encrypted = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
cookie.Expires = System.DateTime.Now.AddMinutes(timeout);//My Line
Response.Cookies.Add(cookie);
}