C#MVC3和会员资格让我登录(记住我)

时间:2011-09-12 17:30:04

标签: asp.net-mvc-3 c#-4.0 asp.net-membership

我在我的应用程序中使用了Membership功能,并且我有以下logIn代码:

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>

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

var keep = keepMeLoggedIn == "true,false" ? true : false;

这段代码让我有点担心。但是,我认为这不会导致问题。

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

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

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