加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在asp.net mvc 3中禁用浏览器缓存?

发布时间:2020-12-16 03:44:00 所属栏目:asp.Net 来源:网络整理
导读:我创建了自定义身份验证.现在我想在注销按钮点击时禁用broswer的缓存.我该怎么办?我应该在注销行动中包含哪些内容? 我跟着:http://www.bradygaster.com/custom-authentication-with-mvc-3.0 解决方法 注销后您关注浏览器后退按钮吗? 如果是,那么您不应该
我创建了自定义身份验证.现在我想在注销按钮点击时禁用broswer的缓存.我该怎么办?我应该在注销行动中包含哪些内容?

我跟着:http://www.bradygaster.com/custom-authentication-with-mvc-3.0

解决方法

注销后您关注浏览器后退按钮吗?

如果是,那么您不应该在注销时禁用缓存.您应该在所有不希望被缓存的页面上禁用它,在您的情况下,这些页面将是所有已验证的页面.

这可以通过编写自定义动作过滤器来完成:

public class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        var response = filterContext.HttpContext.Response;
        response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        response.Cache.SetValidUntilExpires(false);
        response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        response.Cache.SetCacheability(HttpCacheability.NoCache);
        response.Cache.SetNoStore();
    }
}

然后用它来装饰你的行为:

[Authorize]
[NoCache]
public ActionResult Foo()
{
    ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读