我想更新一個cookie值,但它不起作用 - 我嘗試過的所有內容都不會更新cookie,而且我總是獲取cookie的初始值。Cookie不更新
所以我已搜查,並根據MSDN我應該可以做更新cookie中的以下內容:
HttpCookie cookie = new HttpCookie("cookiename");
cookie.Value = cookieValue;
cookie.Expires = DateTime.Now.AddDays(30);
HttpContext.Current.Response.Cookies.Set(cookie); // also just tried using .Add again here
由於這沒有工作,我做了SO另一個搜索,人們說我應該能夠做到這一點:
HttpContext.Current.Response.Cookies["cookiename"].Value = cookieValue;
HttpContext.Current.Response.Cookies["cookiename"].Expires = DateTime.Now.AddDays(30);
但這並沒有工作,要麼所以我試圖刪除Cookie,並重新添加它:
HttpCookie cookie = new HttpCookie("cookiename");
cookie.Value = cookieValue;
cookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(cookie);
cookie.Expires = DateTime.Now.AddDays(30);
HttpContext.Current.Response.Cookies.Add(cookie);
我也試圖消除與前重新添加
ResponseCookies.Remove("cookiename");
而且這也沒有工作,下面的Cookie,所以我現在不知道什麼嘗試。有誰知道如何用c#更新cookie?
更新
如果我通過代碼,並檢查HttpContext.Current.Request.Cookies["cookiename"].Value
我已經更新後,它顯示了新的價值。如果我然後回收應用程序池,以便再次從文件中讀取cookie,它會顯示原始值,因此上面的代碼似乎沒有更新物理cookie。
嘗試刪除,然後將cookie添加回新值。看看是否有效。這是ajax請求嗎? –
@MihirSolanki,不是ajax請求 - 否則我會使用'$ .cookie',因爲它效果更好 - 它實際上更新了cookie! – Pete
由於Cookie位於用戶的計算機上,因此無法直接更新物理Cookie。瀏覽器有責任放棄cookie。 – Smartis