注销 MVC 4 上的清除会话

Abd*_*dul 5 asp.net-mvc-4

我需要知道如何在注销时清除会话,MVC 4 asp.net 我已经尝试了几乎所有的事情,但都是徒劳的。

    [AllowAnonymous]
    public ActionResult SignOut()
    {
        Response.AddHeader("Cache-Control", "no-cache, no-store,must-revalidate");
        Response.AddHeader("Pragma", "no-cache");
        Response.AddHeader("Expires", "0");
        Session.Abandon();

        Session.Clear();
        Response.Cookies.Clear();
        Session.RemoveAll();

        Session["Login"] = null;
        return RedirectToAction("Index", "Login");
    }
Run Code Online (Sandbox Code Playgroud)

Session.Clear();
Session.Abandon(); 在注销等时
清除 cookie
设置会话为空

但是当我点击浏览器的后退按钮时。它重定向到同一个帐户。请帮助我,当我单击注销按钮时,我将如何清除会话变量。我一个一个地尝试了上面的每一个,然后在组中,但结果相同。

小智 1

当您单击浏览器后退按钮时,它会从缓存而不是从服务器获取页面。但用户将无法在后退按钮后显示的页面上执行任何操作。

如果您仍然希望页面不显示,您应该删除缓存。这是一个最佳实践。这是代码。(写入Global.asax.cs文件中)

 protected void Application_BeginRequest()
    {
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
        Response.Cache.SetNoStore();
    }
Run Code Online (Sandbox Code Playgroud)

编写此代码后,用户在按后退按钮后将看不到上一页。

上面为了明确Session对象而编写的代码是正确的。不需要改变任何东西。