MVC:如果点击浏览器中的“返回”按钮,仍然可以在注销后导航到页面

时间:2017-06-08 21:14:08

标签: asp.net-mvc session caching

注销后,如果点击浏览器中的Back按钮,我仍然可以导航到这些页面。

在我的情况下,如果我输入URL并单击回车,我会从应用程序注销,如果直接输入则无法打开页面,因为我的控制器设置了Authorize属性。因此,除非我通过身份验证,否则我无法直接转到该页面。

但是,使用浏览器的Back按钮时,我仍然可以返回上一页。

我认为它与Session或Cache有关,因此,当点击退出链接时,我执行了以下代码:

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
    FormsAuthentication.SignOut();
    Session.Abandon();
    HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, "");
    cookie.Expires = DateTime.Now.AddDays(-1);
    Response.Cookies.Add(cookie);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);  // HTTP 1.1.
    Response.Cache.AppendCacheExtension("no-store, must-revalidate");
    Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
    Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.0.
    Response.AppendHeader("Expires", "0"); // Proxies.
}
return View();

但它没有解决问题。

我该如何解决?

0 个答案:

没有答案