如何防止在注销应用程序后单击浏览器的后退按钮时加载仪表板?



我在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
}