5

私は現在、次のようなコードで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ディレクティブが自動的に追加されます。

Cache-Control:public、no-cache = "Set-Cookie"、must-revalidate、max-age = 60

私のクライアントは、応答をまったくキャッシュしないことで、このディレクティブを処理します。クライアントに到達する前にno-cacheディレクティブを手動で削除すると、キャッシュはうまく機能します。

.NETがCookieを含む応答にこのディレクティブを自動的に追加しないようにするにはどうすればよいですか?

4

1 に答える 1

7

HttpResponseCookiesコレクションが空でないかどうかに基づいて、このディレクティブを追加する必要があるかどうかを決定します。したがって、ヘッダーを手動で追加すると、その存在を.NETから隠すことができます。

response.AddHeader("Set-Cookie", String.Format(
        "{0}={1}; expires={2}; path=/; secure; HttpOnly",
        cookieName, cookieValue, expiresDate.ToString("R")));
于 2012-12-22T18:11:40.133 に答える