注销后,如果点击浏览器中的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();
但它没有解决问题。
我该如何解决?