【问题标题】:MVC 6 - Prevent Cache After LogoutMVC 6 - 注销后防止缓存
【发布时间】:2016-03-15 11:47:34
【问题描述】:

我正在使用 MVC 6,并且我已经实现了 Identity 3.0 进行身份验证。

我试图阻止用户在注销后单击浏览器的后退按钮。我遇到的最接近的工作解决方案似乎不适用于 MVC 6。

有人可以帮忙吗?

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
    filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
    filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
    filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
    filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    filterContext.HttpContext.Response.Cache.SetNoStore();

    base.OnResultExecuting(filterContext);
}
}

【问题讨论】:

    标签: caching model-view-controller asp.net-identity


    【解决方案1】:

    你可以使用它。

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] 公共密封类 NoCacheAttribute : ActionFilterAttribute { 公共覆盖无效 OnResultExecuting(ResultExecutingContext filterContext) { filterContext.HttpContext.Response.Headers.Add("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1。 filterContext.HttpContext.Response.Headers.Add("Pragma", "no-cache"); // HTTP 1.0。 filterContext.HttpContext.Response.Headers.Add("Expires", "-1"); // 代理。 base.OnResultExecuting(filterContext); } }

    【讨论】:

      猜你喜欢
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2012-05-17
      • 2017-04-02
      • 2012-07-15
      • 2011-05-14
      • 2017-07-29
      相关资源
      最近更新 更多