我知道这是在StackOverflow的一个流行的问题。我已经通过每一个问题消失了,我无法找到正确的答案 这是我记录了控制器操作结果
[Authorize]
public ActionResult LogOut(User filterContext)
{
Session.Clear();
Session.Abandon();
Session.RemoveAll();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
FormsAuthentication.SignOut();
return RedirectToAction("Home", true);
}
它不工作 我也想加入,没有这些解决了我的问题。
1. 用你的方法的问题是,你设置它的地方是为时已晚的MVC应用它。下面的三行代码应放在显示的视图(因此该页面),您不想显示。
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
如果你想申请的所有页面上的“关于浏览器的后退没有缓存”的行为,那么你应该把它放在Global.asax中。
protected void Application_BeginRequest()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
}
2. 刚刚成立的动作的输出缓存。我在很多项目中这种方法:
[HttpGet, OutputCache(NoStore = true, Duration = 1)]
public ActionResult Welcome()
{
return View();
}
你的做法的问题是您要设置它已经太晚了 MVC 应用它。以下三行代码的应该是在显示你不想要显示的视图 (因此页) 的方法。
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
如果您希望在所有页上应用"无缓存浏览器背上"行为,那么你应该把它放在 global.asax 中。
protected void Application_BeginRequest()
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
}