caching - 如何在 Mvc 之前通过中间件设置 Cache-Headers 并且不被 ResponseCacheAttribute 覆盖?
问题描述
我有一个 ASP.NET Core 2.2 (preview3) 项目,其中有几个控制器装饰有ResponseCacheAttribute
这样的一个:
[ResponseCache(Location = ResponseCacheLocation.Any, Duration = 60)]
现在我想添加一个中间件,它应该在 MVC 之前和缓存之前运行,这可能决定不允许任何客户端/代理缓存用于此响应。
但是,如果我在中间件中设置它会被管道稍后的控制器context.Response.Headers[HeaderNames.CacheControl] = "no-cache, no-store";
覆盖。ResponseCacheAttribute
所以我的管道看起来像这样:
- 使用新的中间件:检查可缓存性,
no-store
在特定条件下设置 - 使用响应缓存
- 使用Mvc
我怎样才能让它工作?
解决方案
推荐阅读
- c++ - 创建窗口时 CreateWindowsEx 失败
- java - Elasticsearch SELECT * FROM IP="1.1.1.1" AND NAME="ETH1/10"
- c++ - if 和 else if 语句的错误
- java - 当我单击注册时,数据会存储在数据库中,但随后会出现“javax.persistence.TransactionRequiredException:没有正在进行的事务”
- python - 有没有办法用大写和小写分隔字符串?
- c# - 有没有办法通过自动调用基本方法来扩展方法而不用 C# 编写调用?
- php - PHP - 检查字符串是否包含“youtube”然后显示
- microservices - 如何为链式微服务存储状态客户端
- android - Android 11 的 READ_EXTERNAL_STORAGE 权限
- c# - uniqueidentifier 与 newid() 不兼容