私は次のようにコントローラーでログオフアクションを持っています:
public ActionResult Logoff()
{
var x = Request.IsAuthenticated;
var y = User.Identity.IsAuthenticated;
FormsAuthentication.SignOut();
Session.Abandon();
var a = Request.IsAuthenticated;
var b = User.Identity.IsAuthenticated;
return View();
}
ただし、x、y、a、およびbはすべて真です。したがって、ビューがレンダリングされても、ユーザーがログインしているかのように動作します。誰かが解決策や説明を提供できますか?
FormsAuthentication.SignOut()
は認証Cookieを削除するため、クライアントに通知されるようにビューを返すのではなく、認証Cookieの後にリダイレクトする必要があります。
public ActionResult Logoff()
{
FormsAuthentication.SignOut();
return RedirectToAction("Index");
}
これで、Index
アクションで、ユーザーは認証されなくなります。