0

LoggedInイベントでASP.NET4.0ログインコントロールを使用しています

protected void Login_LoggedIn(object sender, EventArgs e)
{
    if (User.Identity.IsAuthenticated) // return false (why?)
    {
        string name = HttpContext.Current.User.Identity.Name;
    }
    Response.Redirect("Default.aspx");
}

イベントが発生し、デバッガーでキャッチしています。私が抱えている問題は、何らかの理由でUser.Identity.IsAuthenticated戻ってくることですfalse

関数が終了してにリダイレクトされた後Default.aspx、を追加するUser.Identity.IsAuthenticatedと、が返されますtrue

どうして?

4

2 に答える 2

0

次のHTTPリクエストの認証をFormsAuthentication.SetCookieで保存することを忘れないでください。

MSDNから:

指定されたユーザー名の認証チケットを作成し、それを応答のCookieコレクションに追加するか、Cookieなしの認証を使用している場合はURLに追加します。

于 2012-08-28T10:22:06.563 に答える
0

これがデフォルトの動作です。このイベントのMSDNページをご覧ください。

「備考」セクションからの抜粋[私の強調]:

LoggedInイベントは、認証プロバイダーがユーザーの資格情報を確認し、認証Cookieがキューに入れられて、次の応答でブラウザーに送信された後に発生します。LoggedInイベントを使用して、ユーザーが認証された後、ユーザーごとのデータへのアクセスなどの追加処理を提供します。

User.Identity.IsAuthenticated=trueこれが、にリダイレクトされたときに表示される理由ですdefault.aspx

于 2012-08-28T10:26:15.900 に答える