在ASP.net Web API中设置自己的缓存控制头
本文关键字:自己的 缓存 控制 设置 ASP net Web API | 更新日期: 2023-09-27 17:53:47
我有以下代码:
public class CacheHeader : OwinMiddleware
{
public CacheHeader(OwinMiddleware next)
: base(next)
{
}
public override async Task Invoke(IOwinContext context)
{
context.Response.Headers["Cache-Control"] = "no-cache, no-store, must-revalidate";
context.Response.Headers["Pragma"] = "no-cache";
context.Response.Headers["Expires"] = "0";
await Next.Invoke(context);
}
}
这应该已经改变了Http缓存控制头有"无存储,无缓存",但当我检查它在Chrome开发工具,我得到以下内容:
Cache-Control:no-cache
Connection:keep-alive
Host:10.0.211.202
Pragma:no-cache
是否有一个原因,我不能改变什么是在cache-control从无缓存到无缓存,无存储?
确保在注册web api之前介绍您的中间件:
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
app.Use((context, next) =>
{
context.Response.Headers["Cache-Control"] = "no-cache, no-store, must-revalidate";
context.Response.Headers["Pragma"] = "no-cache";
context.Response.Headers["Expires"] = "0";
return next.Invoke();
});
app.UseWebApi(config);
}
}
只是猜测。您是否尝试在next.Invoke()之后设置响应头?