在WebAPI中为公共缓存服务器设置缓存控制头的最佳方法是什么?
我对我的服务器上的OutputCache控件不感兴趣,我正在寻求控制CDN方面的缓存(我有单独的API调用,其中响应可以无限期地缓存给定的URL)但是我读过的所有内容都是如此far或者引用WebAPI的预发布版本(因此引用似乎不再存在的东西,比如System.Web.HttpContext.Current.Reponse.Headers.CacheControl),或者看起来非常复杂,只需设置几个http头.
有一个简单的方法吗?
我目前正在从Web服务返回一个cookie,代码如下:
HttpResponse response = ...;
var cookie = new HttpCookie(cookieName)
{
Value = cookieValue,
Expires = expiresDate,
HttpOnly = true,
Path = "/",
Secure = true,
};
response.Cookies.Add(cookie);
Run Code Online (Sandbox Code Playgroud)
这导致在我的Cache-Control标头中自动添加no-cache指令:
Cache-Control:public,no-cache ="Set-Cookie",必须重新验证,max-age = 60
我的客户端碰巧直接处理这个指令而根本没有缓存响应.如果我在命中客户端之前手动删除no-cache指令,缓存效果很好.
如何防止.NET自动将此指令添加到包含cookie的响应中?