2017-05-08 52 views
-1

我想刪除的cookie在ASP.NET刪除Cookie中的多個行動要求在ASP.NET MVC

這是我使用的代碼,它工作正常的情況下所有除了從一個。

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); 
       } 
      } 
     } 

而情景是這樣的。

當我進入我的物品的詳細頁面時,會創建一個cookie。當我回到項目列表。然後,我需要刪除cookie,以便某些菜單不顯示。但是在View調用該刪除的cookie時,它會返回保存值。

我已經調試了cookie。過期日期即被設置爲-ve,但直到請求未完成,cookie才被刪除。

幫助..

+0

我認爲你正在檢查服務器端的cookie,你嘗試刪除相同的請求。當您檢查顯示菜單時,我會要求您檢查到期數據。 –

回答

1

Cookies是存儲在客戶端,所以cookie不會真正刪除,直到客戶端獲取響應頭將其引導到。然後,在下一個請求中,它將不再發送該cookie,但不能刪除並檢查它是否在同一個請求中被刪除,因爲它實際上還沒有被刪除。一般來說,當你刪除一個cookie時,你想要返回一個重定向,即使它是相同的URL。這樣,客戶將被迫做出一個新的無Cookie請求。

+0

感謝克里斯的詳細解釋,其實我發現之前如果發現這個問題。只是想知道是否有辦法繞過它。所以當我沒有運氣。我將Cookie的值設置爲null,以刪除Cookie。這對我來說是訣竅。 –