我在ASP工作。Net与MVC5。一旦我退出应用程序,并单击浏览器的后退按钮,我重定向回到我登录的页面。我尝试清除会话,但问题仍然存在
有谁可以帮助我MVC 5缓存....plss
我正在考虑使用Redis缓存,但不知道如何实现
您需要禁用输出(浏览器)缓存,以便在用户退出后浏览器不会存储您的"受保护"页面的副本。目前,浏览器在本地存储页面的缓存副本,因为浏览器没有"登录"或不登录的概念,它只是显示页面-请求永远不会击中你的MVC控制器,因为浏览器说"嘿,我已经有那个页面了,它在这里!"
你可以使用以下属性
在每个"授权"动作/控制器上禁用它[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] // will be applied to all actions in MyController, unless those actions override with their own decoration
public class MyController : Controller
{
// ...
}
或者你可以通过在你的FilterConfig.cs类中使用以下命令来全局禁用它。
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new OutputCacheAttribute
{
VaryByParam = "*",
Duration = 0,
NoStore = true,
});
// the rest of your global filters here
}