我目前正在从Web服务返回一个cookie,代码如下:
HttpResponse response = ...;
var cookie = new HttpCookie(cookieName)
{
Value = cookieValue,
Expires = expiresDate,
HttpOnly = true,
Path = "/",
Secure = true,
};
response.Cookies.Add(cookie);
这导致在我的Cache-Control标头中自动添加 no-cache 指令:
缓存控制:public, no-cache =“Set-Cookie”,必须重新验证,max-age = 60
我的客户端碰巧直接处理这个指令而根本没有缓存响应。如果我在点击客户端之前手动删除 no-cache 指令,则缓存效果很好。
如何阻止.NET自动将此指令添加到包含Cookie的响应中?
答案 0 :(得分:6)
HttpResponse
根据Cookies
集合是否为非空来确定是否应添加此指令。因此,如果手动添加标头,则可以隐藏其在.NET中的存在:
response.AddHeader("Set-Cookie", String.Format(
"{0}={1}; expires={2}; path=/; secure; HttpOnly",
cookieName, cookieValue, expiresDate.ToString("R")));