我正在使用以下代码进行自定义“记住我”的暗示:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, member.UserName, DateTime.Now, DateTime.Now.AddHours(24), true, dataString);
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
faCookie.Expires = ticket.Expiration;
HttpContext.Current.Response.Cookies.Add(faCookie);
但是有些用户无法登录(即使登录后也会出现登录页面)。
似乎问题是由于客户端的日期与服务器的日期不同(更大)引起的。那么,对于“记住我”的实现来说,最好和正确的解决方案是什么。
为了解决这个问题,我必须删除这一行:
faCookie.Expires = ticket.Expiration;
删除此行后,当用户关闭浏览器时,他必须登录(cookie 不持久)。解决办法是什么?