首页 > 解决方案 > 如何在 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

所以我的管道看起来像这样:

我怎样才能让它工作?

标签: cachingasp.net-coreasp.net-core-mvc

解决方案


推荐阅读