1

我有我自己的 linq to sql 数据库,它有一个很好的登录方法,它给了我一个用户。

我已经按照网络上的 101 个示例了解如何将 cookie 添加到客户端。

            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);

果然,它确实被添加了。但是当我检查它时,它的到期时间是会话结束,而不是指定的两周。因此,当用户在关闭浏览器后试图返回该站点时,他们必须登录。

有任何想法吗?

4

2 回答 2

3

这个特殊错误是因为我将浏览器设置为在关闭时删除 cookie。

于 2008-11-26T17:08:52.847 回答
-1

我有同样的问题,我在登录时解决 Page_Load
首先验证 User.Identity 是否正确
,如果我们有一个有效的用户!!!。
如果 false 删除旧 cookie(请参阅此链接http://forums.asp.net/t/1227365.aspx/1
,最后一部分是为了防止新 cookie 无法正确保存。

于 2012-08-01T01:08:46.923 回答