ユーザーがいつ認証されるかを確認しようとしていますが、ユーザーが認証されていることを常に取得しています。これが私のコードです:
if( User.Identity.IsAuthenticated )
{
addProfiledata();
}
ログインしてログアウトしても、この条件は常に真です。
どうすればこれを修正できますか?
ユーザーロールを定義している場合は、それを処理する必要があります。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");} } }
代わりにこれを試してください:
if(HttpContext.Current.Request.IsAuthenticated) {
//put code for Authenticated user
}
または交互に
if(User.IsInRole("rolename")) {
//put code for Authenticated user
}
これが役立つことを願っています!!