ユーザーがいつ認証されるかを確認しようとしていますが、ユーザーが認証されていることを常に取得しています。これが私のコードです:
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
}
これが役立つことを願っています!!