2011-08-09 6 views
9

を指定:C#/ ASP.NET:ドメインのプロパティでクッキーを削除することはできません私は私のloginメソッドに次のコードを持っている

Response.Cookies["cookie"].Value = "..."; 
Response.Cookies["cookie"].Domain = "domain.com"; 

クッキーがメインドメインに入れ、すべてのサブドメイン

される。この方法を

しかし、私はクッキーを削除しようとすると:

Response.Cookies["cookie"].Expires = DateTime.Now.AddYears(-1); 

それは動作しません!

ドメインプロパティが指定されている2行のコードを削除すると、正常に動作します。

どうすればこの問題を解決できますか?

おかげ

+0

誰でも?私はこれまでこれと闘ってきました.... – Alex

答えて

24

さて、私はそれを考え出しました。

[ドメインのプロパティを設定してクッキーを削除すると、あなたは新しい偽のクッキーのために非常に同じプロパティを設定する必要があります。

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    myCookie.Domain = "domain.com"; // !!!! 
    Response.Cookies.Add(myCookie); 
} 
+1

あなたの答えを共有してくれてありがとう。それは私が仲間を助けた – DotNetInfo

4

私はResponseがあるときは、サブドメインにExpiresを設定している疑いがある...
クロスチェック:あなたは試してみて、自分自身のドメインからそれを設定し、それが動作するかどうかを確認することはできますか?

http://msdn.microsoft.com/en-us/library/ms178195%28v=VS.100%29.aspxによると、あなたがでクッキーを削除することができます。

if (Request.Cookies["cookie"] != null) 
{ 
    HttpCookie myCookie = new HttpCookie("cookie"); 
    myCookie.Expires = DateTime.Now.AddDays(-1d); 
    Response.Cookies.Add(myCookie); 
} 
+0

あなたの答えをありがとう。私はドメイン自体からクッキーを設定します。私はまったく同じ例を試してみましたが、Operaでのみ動作します。 – Alex

+0

適切なソリューションを提供していただきありがとうございます。 –

0

は周りのかなりを検索し、それが仕事を得ることができませんでした。 実際に値のプロパティを設定して動作させる必要がありました。 mvcを使用する3。ネット4.

 var current = HttpContext.Current.Request.Cookies[key]; 
     if (current == null) return; 
     var myCookie = new HttpCookie(key) 
          { 
           Expires = DateTime.Now.AddYears(-1), 
           Value = current.Value, 
           Domain = domain 
          }; 
     HttpContext.Current.Response.Cookies.Set(myCookie);