2017-05-08 19 views
-1

ASP.NET MVCでの複数のアクション要求にクッキーを削除します。は、私はこれは私が使用していますし、それが1から除くすべてのシナリオのために正常に動作しているコードであるASP.NET</p> <p>でクッキーを削除したい

public static void DeleteCookie(string name) 
     { 
      if (!string.IsNullOrWhiteSpace(name)) 
      { 
       var cookie = HttpContext.Current.Request.Cookies[name]; 

       if (cookie != null) 
       { 
        // Delete the cookie 
        cookie.Expires = DateTime.Now.AddDays(-1d); 
        HttpContext.Current.Response.Cookies.Add(cookie); 
       } 
      } 
     } 

シナリオはこれです。

私のアイテムの詳細ページに行くと、クッキーが作成されます。私が項目リストに戻るとき。その後、いくつかのメニューが表示されないようにクッキーを削除する必要があります。しかし、同じリクエストで、ビューの呼び出しでクッキーが削除された場合、保存値が返されます。

私はクッキーをデバッグしました。有効期限(すなわち、-veに設定されていますが、要求が完了しなくなるまではクッキーは削除されません)。

ヘルプ..

+0

私はあなたが削除しようとする同じリクエストでサーバー側のクッキーをチェックしていると思います。私は、あなたがメニューの表示をチェックしている間にも有効期限のデータをチェックするようにお願いします。 –

答えて

1

クッキーは、クライアント側に保存されているので、クライアントがそれを指示するレスポンスヘッダを取得するまでクッキーは実際には削除されません。その後、次のリクエストでは、そのCookieを送信しなくなりますが、実際にはまだ削除されていないため、同じリクエストで削除されたことを確認することはできません。一般に、Cookieを削除すると、同じURLになっていてもリダイレクトを返すことができます。そうすることで、クライアントは新しいクッキーレスのリクエストを強制的に行うことになります。

+0

詳細な説明についてはChrisに感謝します。実際には、私はこの質問を掲載する前にそれを把握しています。それをバイパスする方法があるかどうかを知りたかっただけです。だから私は運がなかったとき。私はクッキーを削除する場所にCookieの値をnullに設定します。それは私のためのトリックを行う。 –

関連する問題

 関連する問題