我有自己的linq到sql数据库,有一个很好的登录方法,它让我回到用户。
我已经在网上关注了如何将cookie添加到客户端的101个示例。
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1,
_u.id.ToString(),
DateTime.Now,
DateTime.Now.AddDays(14),
true,
"hi",
FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
//Response.Cookies.Add(cookie);
//FormsAuthentication.RedirectFromLoginPage(_u.name, _remember);
FormsAuthentication.SetAuthCookie(_u.name, _remember);
确实它确实得到了补充。但是当我检查它时,它的到期时间表示会话结束,而不是指定的两周。因此,当用户在关闭浏览器后尝试返回站点时,他们必须登录。
有什么想法吗?
答案 0 :(得分:3)
导致此特定错误的原因是我将浏览器设置为在关闭时删除Cookie。
答案 1 :(得分:-1)
我遇到同样的问题,我在登录Page_Load时解决了
首先验证User.Identity是否正确
如果是,我们有一个有效的用户!!!
if false删除旧cookie(见此链接http://forums.asp.net/t/1227365.aspx/1)
这最后一部分是为了防止新cookie无法正确保存。