我正在尝试更新 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);
我还尝试在重新添加之前使用以下内容删除 cookie
ResponseCookies.Remove("cookiename");
这也不起作用,所以我现在不知道还能尝试什么。有谁知道如何用 C# 更新 cookie?
Update
如果我单步执行代码并检查HttpContext.Current.Request.Cookies["cookiename"].Value
我更新后,它显示新值。如果我然后回收应用程序池,以便必须再次从文件中读取 cookie,它会显示原始值,所以上面的代码似乎没有更新物理 cookie