咨询区

  • jackmusick

我想禁掉浏览器缓存,这样我的client端每次都能看到server端的最新内容,在 asp.net 时代可以这么写。


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

但在 asp.net core 项目中我发现并没有 HttpContext.Response.Cache 属性,请问是否有其他可替换的方式?

回答区

  • Darin Dimitrov

你可以直接在 response header 上添加你需要设置的值,参考如下代码:


public class NoCacheAttribute : ActionFilterAttribute
{public override void OnResultExecuting(ResultExecutingContext filterContext){filterContext.HttpContext.Response.Headers["Cache-Control"] = "no-cache, no-store, must-revalidate";filterContext.HttpContext.Response.Headers["Expires"] = "-1";filterContext.HttpContext.Response.Headers["Pragma"] = "no-cache";base.OnResultExecuting(filterContext);}
}
  • mk_yo

在 asp.net core 中,ResponseCache 特性被保留了下面,所以你可以像下面这样设置。

[ResponseCache(NoStore = true, Location = ResponseCacheLocation.None)]public class HomeController : Controller{}
  • Marco Alves

如果你需要在全局作用域上禁用,可以利用 Middleware 机制实现,参考如下代码。


namespace Onsolve.ONE.WebApi.Middlewares
{public sealed class RequestHandlerMiddleware{private readonly RequestDelegate next;private readonly ILogger logger;public RequestHandlerMiddleware(ILogger<RequestHandlerMiddleware> logger, RequestDelegate next){this.next = next;this.logger = logger;}public async Task Invoke(HttpContext context){await next(context);context.Response.Headers["Cache-Control"] = "no-cache, no-store, must-revalidate";context.Response.Headers["Expires"] = "-1";context.Response.Headers["Pragma"] = "no-cache";}}
}

点评区

这功能好,让浏览器实时查看server端内容,尤其是集成到中间件中,学习了。

.NET Core 中有等价的 HttpContext.Response.Cache 吗?相关推荐

  1. Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache

    在ASP.NET中有两个类都提供缓存支持, 一个是HttpRuntime类的Cache属性, 另一个是HttpContext类的Cache属性. 通过查看这两个属性的类型可以发现其实这两个属性都是Sy ...

  2. HttpContext.Current.Cache 过期时间

    HttpContext.Current.Cache 过期时间 原文:HttpContext.Current.Cache 过期时间 为了更快的读取数据,我们一般会把常用到的数据加载到Cache中 在.N ...

  3. 缓存通用管理类 + 缓存 HttpContext.Current.Cache 和 HttpRuntime.Cache 的区别

    以前写asp.net时用HttpContext.Current.Cache存缓存很好用,今天写了一个windows服务程序,HttpContext.Current.Cache存缓存的时候还好,取的时候 ...

  4. HttpContext.Current.Cache vs. HttpRuntime.Cache

    .NET中Cache有两种调用方式:HttpContext.Current.Cache 和 HttpRuntime.Cache,这两种方式有什么区别呢?我们先看MSDN上的解释:       Http ...

  5. HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching

    先看MSDN上的解释:       HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.       HttpRuntime.Cache:获取当前应用程序的C ...

  6. asp.net core 系列之Performance的 Response compression(响应压缩)

    本文,帮助了解响应压缩的一些知识及用法(大部分翻译于官网,英文水平有限,不准确之处,欢迎指正). 什么是响应压缩?响应压缩简单的说就是为了减少网络带宽,而把返回的响应压缩,使之体积缩小,从而加快响应的 ...

  7. HttpContext.Current.Cache在控制台下不工作

    说明: Cache 类不能在 ASP.NET 应用程序外使用.它是为在 ASP.NET 中用于为 Web 应用程序提供缓存而设计和测试的.在其他类型的应用程序(如控制台应用程序或 Windows 窗体 ...

  8. Android网络优化基础操作攻略(DNS解析,连接复用,Response Cache,数据压缩,弱网,网络安全,监控)

    做网络优化,首先我们要这个流程有一定的认识,大致流程如下: 生成请求行 查找强缓存(不一定都有) DNS域名解析(找到Host主机IP) 建立TCP连接(三次握手) 发送HTTP请求 接收HTTP响应 ...

  9. MIME 类型(HttpContext.Response.ContentType)列表

    按照内容类型排列的 Mime 类型列表 类型/子类型 扩展名 application/envoy evy application/fractals fif application/futurespla ...

最新文章

  1. One sentence only!!
  2. php+imagick详解,PHP中imagick函数的中文解释_php技巧
  3. python3安卓版安装教程_安装python3的详细教程
  4. python爬虫---requests库的用法
  5. 学习过程中的一些细节
  6. Qt on Android 蓝牙通信开发
  7. 打开outlook2010里面的链接显示 “由于本机的限制,该操作已被取消。请与系统管理员联系。”解决方法...
  8. Nginx在嵌入式系统中的应用
  9. SQL——正则表达式
  10. 时间片轮转调度算法详解
  11. js二进制流转换成图片_JavaScript PNG 图片编码和解码
  12. 我的世界超能物质纳米机器人_我的世界超能物质攻略
  13. 怎么理解“付费搜索广告应当与自然搜索结果明显区分”
  14. 量化指标公式源码_五行量化副图指标 源码 通达信
  15. 几何画板用迭代法作图的技巧
  16. U盘中毒数据丢失如何快速恢复
  17. 区块链 图灵完备是什么
  18. 苹果6运行内存是多少_安卓手机12GB运行内存为何打不过苹果的4GB?有哪些原因?...
  19. WMI系列--关于WMI
  20. 信息安全中的尖刀burpsuite的下载,安装

热门文章

  1. 回文算法java实现_java算法题:最长回文串
  2. 常用模块之 time,datetime,random,os,sys
  3. Tomcat 发布项目 conf/Catalina/localhost 配置 及数据源配置
  4. FPGA浮点数定点化
  5. Leetcode: Valid Parentheses
  6. ubuntu make menuconfig error
  7. apache2 配置php,Windows配置PHP5与Apache2
  8. 谷歌chrome xp_将非Google任务列表添加到Chrome
  9. linux压缩和解压缩_Linux QuickTip:一步下载和解压缩
  10. PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues