2017-04-03 10 views
0

我的團隊維護一套C#應用程序,它們都共享一組通用的Cookie。可以以編程方式防止由於Cookie大小而引發400錯誤嗎?

最近,我們遇到了cookie大小變得過大的情況,用戶在訪問我們的生產站點時開始遇到400錯誤。

我寫了一個小的WebForms應用程序,將通過我們的Cookie列表進行迭代,並刪除其中不包括我們共同的代碼,將嘗試在Global.asax中讀/寫餅乾:

  foreach (var c in cookieList) 
      { 
       HttpCookie currentUserCookie = HttpContext.Current.Request.Cookies[c]; 
       if (currentUserCookie != null) 
       { 
        HttpContext.Current.Response.Cookies.Remove(c); 
        currentUserCookie.Expires = DateTime.Now.AddDays(-10); 
        currentUserCookie.Value = null; 
        HttpContext.Current.Response.SetCookie(currentUserCookie); 
       } 
      } 

但是,我們網站上的所有網頁仍然拋出錯誤。我們能找到的唯一解決方案是讓用戶手動刪除他們的Cookie。

是否有任何我們可以觸發從服務器端刪除我們的cookies並保存我們的用戶手動清除他們的cookies的麻煩?我們使用IE11和Chrome 54

回答

0

這一行嘗試更新現有的Cookie

HttpContext.Current.Response.SetCookie(currentUserCookie); 

(從響應刪除)試試這個..

 foreach (var c in cookieList) 
     { 
      HttpCookie currentUserCookie = HttpContext.Current.Request.Cookies[c]; 
      if (currentUserCookie != null) 
      { 
       HttpContext.Current.Response.Cookies.Remove(c); 
       currentUserCookie.Expires = DateTime.Now.AddDays(-1); 
       HttpContext.Current.Response.Cookies.Add(currentUserCookie); 
      } 
     } 
+0

我給一個嘗試,仍然得到400錯誤。 –

相關問題