私はHttpContext.Response
のすべてのクッキーをクリアするコードを試しています。HttpContext.Request.CookiesとHttpContext.Response.Cookiesの関係
は当初、私はこれを使用:
DateTime cookieExpires = DateTime.Now.AddDays(-1);
for (int i = 0; i < HttpContext.Request.Cookies.Count; i++)
{
HttpContext.Response.Cookies.Add(
new HttpCookie(HttpContext.Request.Cookies[i].Name, null) { Expires = cookieExpires });
}
for
ループが終了したことがないので、しかし、これはOutOfMemoryException
とエラーになります - あなたはResponse
にクッキーを追加するたびに、それはまた `リクエストに追加されます。
次のアプローチは動作しますので、
DateTime cookieExpires = DateTime.Now.AddDays(-1);
List<string> cookieNames = new List<string>();
for (int i = 0; i < HttpContext.Request.Cookies.Count; i++)
{
cookieNames.Add(HttpContext.Request.Cookies[i].Name);
}
foreach (string cookieName in cookieNames)
{
HttpContext.Response.Cookies.Add(
new HttpCookie(cookieName, null) { Expires = cookieExpires });
}
、HttpContext.Request.Cookies
とHttpContext.Response.Cookies
との関係は正確に何ですか?