1

私はASP.NETメンバーシッププロバイダーを作成しましたが、うまく機能しますが、ユーザーがパスワードを変更してサインアウトし、再度サインインしようとすると失敗することに気付きました。これは、ユーザーが2つ以上のアカウントを持っていてサインアウトした場合にも発生しますもう一方とサインインしようとします。ユーザーがブラウザで Cookie をクリアすると、再度サインインできるため、ユーザーがサインアウトしたときに、何らかの理由で Cookie が削除されていないようです。これが私のサインアウトコードです:

void ClearAuthenticationCookie()
    {
        var cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, String.Empty) { Expires = DateTime.Now.AddYears(-1) };
        Response.Cookies.Add(cookie1);            
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        FormsAuthentication.SignOut();

        ClearAuthenticationCookie();

        FormsAuthentication.RedirectToLoginPage();
    }
4

2 に答える 2

1

私は今それを理解しましたが、それは本当にばかげていました。サインアウト ページからの FormsAuthentication.RedirectToLoginPage() は、URL に /Login.aspx?ReturnUrl=%2fAccount%2fLogout.aspx を挿入するため、サインインしようとすると、再度サインアウト ページにリダイレクトされます。もっと早く見ておくべきでした、時間を無駄にして申し訳ありません:(

于 2012-05-27T18:46:09.513 に答える
0

サインアウト ページのページ読み込み時にこれを追加してみてください。

Session.Clear();
于 2012-05-27T14:59:09.587 に答える