我有一个基于ASP.NETMVC4的项目,简单的身份验证.
我尝试让我的网站在用户选中"记住我"复选框时自动让用户登录。但是我遇到了问题。关闭浏览器并重新打开后,用户从未登录过。
检查后(http://forums.asp.net/t/1654606.aspx#4310292)我添加了一个机器密钥,由IIS生成。我设置了 * 在运行时自动生成 * 和 * 为每个应用程序生成唯一的密钥 * 都被禁用,我生成了密钥)。不幸的是,这没有工作。
看一下"Remember me" with ASP.NET MVC Authentication is not working,我已经添加了 * 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);
}
5条答案
按热度按时间7d7tgy0s1#
我就是这么做的
然后
你可以在Global.asax或授权过滤器上检查它.确保你有web.config有
和[Authorize]属性。
tnkciper2#
3pmvbmvn3#
polkgigr4#
ars1skjm5#