咨询区

  • Palani

我在寻找一个方法禁用某个 ASP.NET MVC 网站的所有浏览器缓存,我发现了如下方法。


Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();

而且我也发现了可以在 html 上追加一个 meta 标记。


<meta http-equiv="PRAGMA" content="NO-CACHE">

但这种方式不适合我,因为我的网站中会有一些 ajax 请求,自然就无法携带meta了。

请问我如何在全局作用域下实现这么一个禁用浏览器缓存的功能?

回答区

  • JKG

可以自定义一个继承 IActionFilter 的类。


public 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);}
}

然后在你需要禁用的作用域下使用 [NoCache] 标记即可,比如下面的 Controller。


[NoCache]
[HandleError]
public class AccountController : Controller
{[NoCache][Authorize]public ActionResult ChangePassword(){return View();}
}
  • NidhinSPradeep

你可以在  Global.asax 下的 Application_BeginRequest 方法中实现此功能。

protected void Application_BeginRequest(){Response.Cache.SetCacheability(HttpCacheability.NoCache);Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));Response.Cache.SetNoStore();}
  • JKG

你可以使用 Asp.NET 自带的 OutputCache 特性。


[System.Web.Mvc.OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]

直接使用 OutputCache 特性的话,会让这些代码零散在项目各处,更好的做好应该是封装到一个 Controller 中,然后让需要的 Controller 继承此 Controller 即可,比如下面的代码。


[System.Web.Mvc.OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
public class NoCacheController  : Controller
{
}public class HomeController : NoCacheController
{
}

点评区

全局禁用浏览器的Cache,这需求有点奇葩哈,不过本篇也学习到了如何全局性的配置,有收获。

如何禁用 ASP.NET 网站的所有的 浏览器缓存 ?相关推荐

  1. 不修改代码就能优化ASP.NET网站性能的一些方法

    目录 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不需要修改程 ...

  2. 学习笔记---将Asp.Net网站发布到IIS的四种方法及注意事项

    将Asp.Net网站发布到IIS的四种方法及注意事项: 不管是那种发布方法, 第一件事情是让IIS能够支持asp.net程序, 默认IIS是不开器asp.net网站程序的支持的.在IIS中的" ...

  3. ASP.NET网站页面加载及运行效率等多方面实战优化

    网站加载内容较多,图片.Flash等文件较大.请求次数较多.页面不具有缓存性等等都会影响网站的页面加载速度和运行效率.之前做过很多网站,但是基本上都没有进行过优化,比如运用缓存等技术.最近有一个网站加 ...

  4. 预编译 ASP.NET 网站以进行部署

    预编译 ASP.NET 网站以进行部署和更新 打开一个命令窗口并定位到包含 .NET Framework 的文件夹. .NET Framework 将安装在以下位置. %windir%\Microso ...

  5. ASP.NET 网站预编译概述

    默认情况下,在用户首次请求资源(如网站的一个页)时,将动态编译 ASP.NET 网页和代码文件.第一次编译页和代码文件之后,会缓存编译后的资源,这样将大大提高随后对同一页提出的请求的效率. ASP.N ...

  6. Asp.net网站的自动部署-sqlserver数据库的自动部署

    Asp.net网站的自动部署 2005-09-28 这段时间要解决的问题是asp.net网站的自动部署,主要功能是在安装的时候实现数据库的部署和基本数据的添加,asp.net网站的部署(多个虚拟目录) ...

  7. 解决ASP.NET网站发布问题

    解决ASP.NET网站发布问题 参考文章: (1)解决ASP.NET网站发布问题 (2)https://www.cnblogs.com/limusic/p/3378023.html 备忘一下.

  8. 由“ASP.NET网站限制访问频率”想到的两点问题(转)

    转自:http://www.cnblogs.com/wangwei/archive/2009/09/19/1570242.html "ASP.NET网站限制访问频率"的作者遇到了两 ...

  9. 实现 ASP.NET 网站地图提供者

    ASP.NET 网站导航提供若干 Web 服务器控件用于 Web 页面中导航结构的显示:SiteMapPath,TreeView,和 Menu 控件.这些 Web 服务器控件都使用 ASP.NET 默 ...

最新文章

  1. 安卓学习-其他-文件读写
  2. COM 组件设计与应用(六)——用 ATL 写第一个组件(vc.net)
  3. NLP学习思维导图,非常的全面和清晰
  4. IDEA加密文件Base64转换String传输以及报文摘要MD5防止恶意篡改
  5. 清华朱军团队包揽三项冠军 | NIPS 2017对抗样本攻防竞赛总结(附学习资料)
  6. jvm性能调优 - 11J线上VM调优案例分享
  7. 【单片机相关】的网站
  8. 一文弄懂AdaBoost、提升树、残差树、GDBT
  9. linux 程序返回值 139,Linux系统监控之ssh登陆自动139邮件短信提醒
  10. Comet OJ-栈的数据结构题【线段树】
  11. 怎么用计算机拟合数据,数据拟合的几个应用实例-毕业论文.doc
  12. 机器学习问题总结(03)
  13. 数据中心的容器操作系统--k8s理解
  14. Atitit 研发体系 codelib 代码库的建设 目录 1. 概念与组成 2 1.1. Java代码 2 1.2. Js代码 2 1.3. H5 代码 js+css+htm+txt 2 1.4.
  15. markdown 文档转 word
  16. LCD1602中文资料
  17. 汤姆·克鲁斯 - 电影全集
  18. 英文字母pc是什么意思,互联网的pc指的是什么
  19. 论文-Interactive Path Reasoning on Graph for Conversational Recommendation
  20. pwnable.kr-passcode

热门文章

  1. 在宽字节环境下获取EditBox中的CString转换为char[]
  2. System Information for Windows
  3. OpenCV2:应用篇 三维重建
  4. jquery中的ajax方法(备忘)
  5. MVC学习九:MVC 特性本质
  6. 零拷贝概念 -- linux内核
  7. unity的依赖注入
  8. Linux 2.6 完全公平调度算法CFS(Completely Fair Scheduler) 分析
  9. Android中常用到的权限
  10. JavaScript Dom编程艺术