0

名前、ドメイン、パスは同じですが、値が異なる複数のCookieがあります。これは仕様によるものではありません。これを修正しようとしていますが、削除できません。複数のコードバリエーションを試しました。これが1つです:

string[] cookies = Request.Cookies.AllKeys;
HttpCookie cookie;
string cookieName;
string cookieValue;
for (int i = 0; i < cookies.Count(); i++)
{
  cookieName = Request.Cookies[i].Name;
  if (cookieName == "ASP.NET_SessionId")
  {
    //  Do not delete session cookie or we will be logged out
    continue;
  }

  cookieValue = Request.Cookies[i].Value;
  cookie = new HttpCookie(cookieName);
  cookie.Value = "";
  cookie.Expires = DateTime.Now.AddDays(-1);
  Response.Cookies.Add(cookie);
}

そしてここに別のものがあります:

string[] cookies = Request.Cookies.AllKeys;
for (int i = 0; i < Request.Cookies.AllKeys.Count(); i++)
{
    if (Request.Cookies[i].Name == "ASP.NET_SessionId")
    {
        //  Do not delete session cookie or we will be logged out
        continue;
    }

    Request.Cookies[i].Expires = DateTime.Now.AddDays(-1);
}

Request.CookiesにCookieをリストすると、「削除された」Cookieは有効期限が昨日で表示されますが、他のCookieは有効期限が1/1/0001で表示されます。これらは、ヒントをとらずにハイキングをするものです。

よろしくお願いします。

4

1 に答える 1

1

有効期限を1日ではなく1年前に設定してみましたか?

これがCookieの削除に関する投稿です。彼のコードでは、日付を30年前に設定しています。

Cookieにドメインを設定します。

  cookieValue = Request.Cookies[i].Value;
  cookie = new HttpCookie(cookieName);
  cookie.Value = "";
  cookie.Domain = "dev.domain.com";
  cookie.Expires = DateTime.Now.AddDays(-1);
  Response.Cookies.Add(cookie);
于 2012-08-08T17:01:39.593 に答える