2

そのため、私の同僚の1人が次のコードを使用して、ブラウザからCookieを「削除」しました。これは機能するはずですが、ページを読み込んだ直後にCookieを確認すると、Cookieはまだそこにあります。このコードに何か問題がありますか、それとももっと大きな問題がありますか?

protected void Page_Load(object sender, EventArgs e)
{
    HttpCookie aCookie;
    string cookieName;
    int limit = Request.Cookies.Count;

    for (int i = 0; i < limit; i++)
    {
        cookieName = Request.Cookies[i].Name;
        aCookie = new HttpCookie(cookieName);
        aCookie.Expires = DateTime.Now.AddDays(-1);

        if (cookieName != "Lang")
            Response.Cookies.Add(aCookie);
    }
    FormsAuthentication.SignOut();
    Response.Redirect("/default.aspx");
}
4

2 に答える 2

1

これは私がクッキーを殺すために使用したコードであり、それは私のために働きます。

string cookieName;
    int limit = Request.Cookies.Count;


    for (int i = 0; i < limit; i++)
    {
        cookieName = Request.Cookies[i].Name;
        var cookie = new HttpCookie(cookieName);
        cookie.Value = "";
        cookie.Expires = DateTime.Now.AddDays(-3);
        //Only if HTTPS
        cookie.Secure = true;
        //Only if a domain is specified, and obviously, it should match the domain of the app
        cookie.Domain = "XYZ";

        Response.Cookies.Add(cookie);
    }
    FormsAuthentication.SignOut();
    Response.Redirect("/default.aspx");

あなたがしている応答にあなたがクッキーを書くことを確認してください。

于 2013-01-02T20:48:32.453 に答える
0

構文は正しいように見えますが、不足しているのはCookieの変更をシステムにポストバックすることだと思います。

Response.Cookies.Add()Cookieの有効期限を設定しましたが、古いCookieを上書きするには、同じ名前でを行う必要があります。

于 2013-01-02T20:49:20.693 に答える