Asp.net mvc 3 C#MVC3和会员资格让我保持登录状态(记住我)

Asp.net mvc 3 C#MVC3和会员资格让我保持登录状态(记住我),asp.net-mvc-3,c#-4.0,asp.net-membership,Asp.net Mvc 3,C# 4.0,Asp.net Membership,我正在我的应用程序中使用会员资格功能,我有以下登录代码: if (!Membership.ValidateUser(email, password)) { ViewBag.Message = "E-mail ou senha estão incorretos."; return View(); } else { FormsAuthentication.Authenticate(email, password); var keep = keepMeLoggedIn

我正在我的应用程序中使用会员资格功能,我有以下登录代码:

if (!Membership.ValidateUser(email, password))
{
    ViewBag.Message = "E-mail ou senha estão incorretos.";
    return View();
}
else
{
    FormsAuthentication.Authenticate(email, password);
    var keep = keepMeLoggedIn == "true,false" ? true : false;
    FormsAuthentication.SetAuthCookie(email, keep);
    return Redirect("~/Home/Mural");
}
从昨天到现在,当我再次打开我的应用程序时,我没有登录。。。 我听说当你生成一个持久的cookie时,会话永远不会过期,这是真的吗?我做错了什么?我应该在web.config中添加一些其他信息吗

<authentication mode="Forms">
  <forms name=".ASPXAUTH" loginUrl="~/Usuario/Login" protection="All" timeout="360"   cookieless="UseDeviceProfile" />
</authentication>

有人能帮忙吗

var keep = keepMeLoggedIn == "true,false" ? true : false;
这个代码让我有点担心。然而,我不认为这是造成问题的原因

但是,持久性cookie有一个过期时间(超时),它是由您显示的身份验证标记确定的

会话cookie和持久cookie之间的唯一区别是,如果用户关闭浏览器或超时,会话cookie将过期。持久cookie只有在超时时才会过期

SetAuthCookie的第二个参数是是否创建持久cookie。如果为false,它将是一个会话,如果为true,它将是持久的

这个代码让我有点担心。然而,我不认为这是造成问题的原因

但是,持久性cookie有一个过期时间(超时),它是由您显示的身份验证标记确定的

会话cookie和持久cookie之间的唯一区别是,如果用户关闭浏览器或超时,会话cookie将过期。持久cookie只有在超时时才会过期


SetAuthCookie的第二个参数是是否创建持久cookie。如果为false,则为会话;如果为true,则为持久性。

感谢您的回答,TIHan,如果用户选择持久性登录,我希望我的会话永不过期。我该怎么做?我想唯一的办法就是增加超时时间。只要几分钟,26280000就是50年。我认为这是足够的时间谢谢你的回答TIHan,如果用户选择永久登录,我希望我的会话永远不会过期。我该怎么做?我想唯一的办法就是增加超时时间。只要几分钟,26280000就是50年。我认为这是足够的时间