2013-02-06 259 views
0

我已经实现了自定义会员供应商,现在我希望为用户提供让网站记住他们的选项,这样他们就不必每次访问时都登录。持久性cookie不会非常持久

我已经将我的cookie设置为持久性,但它不是非常持久。当我登录网站后关闭浏览器并再次打开时,需要重新登录。

FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
       1, 
       model.UserName, 
       DateTime.Now, 
       (model.RememberMe == true ? DateTime.Now.AddDays(7) : DateTime.Now.AddMinutes(60)), 
       model.RememberMe, 
       userData); 
      string encTicket = FormsAuthentication.Encrypt(authTicket); 
      HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); 
      Response.Cookies.Add(cookie); 

      return RedirectToAction("Index", "Home"); 

model.RememberMe在这种情况下是一个值为true的布尔值,由Visual Studio调试器验证。

我在这里做了些明显的错误吗?

+2

您正在设置票证的到期日期,而不是过期的Cookie,您应该同时执行以确保Cookie不会过期,并且票证仍被视为有效 – Slicksim

+0

@Slicksim非常感谢!我会适应它。 – Maritim

回答

0

最后,事实证明,我必须指定cookie的到期日期,正如Slicksim在2013年2月7日的评论中指出的那样。