0

ユーザーがいつ認証されるかを確認しようとしていますが、ユーザーが認証されていることを常に取得しています。これが私のコードです:

 if( User.Identity.IsAuthenticated )
 {
     addProfiledata();
 }

ログインしてログアウトしても、この条件は常に真です。

どうすればこれを修正できますか?

4

2 に答える 2

0

ユーザーロールを定義している場合は、それを処理する必要があります。LoginControl を使用しています。loginview などの他のログインコントロールでサインアウトサインインを処理していると思います。ユーザーロールをそれに割り当てていることを願っています。この場合、LoginUser_LoggedIn イベントを使用できます

   // ユーザーの役割に応じてユーザーをリダイレクトするかどうかを考えます
protected void LoginUser_LoggedIn(オブジェクト送信者, EventArgs e)
        {
            if (string.IsNullOrEmpty(Request.QueryString["ReturnUrl"]))
            {
                // ユーザーが役割を持ち、認証されている場合
                if (Roles.IsUserInRole(LoginUser.UserName, "Developers"))
                {
                    // セッションを追加して特定のページにリダイレクト
                    Session.Add("開発者", "開発者");
                    Response.Redirect("../Developers/devAccess.aspx");

            }
        }
    }

于 2012-12-01T18:54:26.663 に答える
0

代わりにこれを試してください:

if(HttpContext.Current.Request.IsAuthenticated) {

  //put code for Authenticated user 

}

または交互に

if(User.IsInRole("rolename")) {

  //put code for Authenticated user 

}

これが役立つことを願っています!!

于 2012-12-01T14:57:13.513 に答える