1

私は、ユーザーを返す素晴らしいログイン方法を備えた独自のlinqtosqlデータベースを持っています。

クライアントにCookieを追加する方法については、Web上の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);

そして確かにそれは追加されます。しかし、私がそれを調べると、その有効期限は、指定された2週間ではなく、セッションの終了を示しています。そのため、ユーザーがブラウザを閉じた後にサイトに戻ろうとすると、ログインする必要があります。

何か案は?

4

2 に答える 2

3

この特定のエラーは、ブラウザーを閉じたときに Cookie を消去するようにブラウザーを設定していたため発生しました。

于 2008-11-26T17:08:52.847 に答える
-1

私は同じ問題を抱えており、ログイン Page_Load で解決します
最初に User.Identity を検証します
true の場合、有効なユーザーがいます!!!.
false の場合、古い Cookie を削除します (このリンクhttp://forums.asp.net/t/1227365.aspx/1を参照)
。この最後の部分は、新しい Cookie が正しく保存されないようにするためのものです。

于 2012-08-01T01:08:46.923 に答える