我正在为我的应用程序开发一个日志模块,如果同一用户在另一台 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();
}
}