私のアプリケーションのログモジュールに取り組んでいます。同じユーザーが別のPCにログインした場合にセッションを閉じる必要があります(古いセッションを閉じます)。その部分は機能しますが、フィルターからログアウト ビューにリダイレクトすると、ログアウト ビューはレイアウトを使用し、そのレイアウトには if 内にメニューがあります。
@if (Context.User.Identity.IsAuthenticated)
{
<nav>
<div>
@Html.Action("_menu", "Menu")
</div>
</nav>
}
そのため、メニューなしでログアウト ビューが読み込まれることを期待していますが、アプリケーションを実行するとメニューが表示され、ページの更新のようなものが発生するまでメニューが表示されなくなります。
私のログオフ方法:
public ActionResult LogOff()
{
FormsAuthentication.SignOut();
HttpCookie cookie = new HttpCookie("sid")
{
Expires = DateTime.Now.AddDays(-10) // Eliminar la cookie
};
HttpContext.Response.Cookies.Set(cookie);
if (HttpContext.Session["errorMsg"] == null)//salida normal?
{
return RedirectToAction("LogOn", "Account");
}
else//no
{
//Session.Abandon();
ViewBag.error = HttpContext.Session["errorMsg"];
Session.Abandon();
return View();
}
}