我在我的一个ASP.NET Core MVC(.NET Framework)应用程序中使用cookie。 我正在尝试在客户端浏览器会话处于活动状态时保留对象值。 我想读,写和更新该值。
我命令序列化和反序列化我的对象我使用System.Web.Script.Serialization命名空间中的JavascriptSerializer类,以便处理我使用Microsoft.ASPNetCore.Http命名空间中的HttpResponse和HttpRequest类的cookie。 / p>
我可以读取cookie,然后将其反序列化为我的对象或序列化我的对象,然后将其写入cookie。但我无法更新cookie,因为Response.Cookies对象不允许我更新现有的cookie。然后我删除了cookie并将其附加到Response.Cookies对象,但该工作正常。有没有其他方法可以更新MVC6应用程序中的cookie而不必删除它?那不是" cookie更新" !!
答案 0 :(得分:4)
Cookie无法更新。也就是说,他们也不能删除。这不是MVC的问题,它是关于cookie的事实,参见例如https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies:服务器可以对cookie执行的唯一操作是设置它。将cookie视为浏览器而非服务器所拥有的颜色可能会有所帮助。
在浏览器中,您可以看到为cookie重新附加新值会产生您想要的效果:浏览器获取新值。 e.g。
服务器端:
HttpContext.Response.Cookies.Append("key", "value set at " + DateTime.Now.TimeOfDay);
和客户方:
document.writeln(document.cookie);
console.log("document.cookie", document.cookie);
答案 1 :(得分:0)
试试这个:CookieManager Wrapper(https://github.com/nemi-chand/CookieManager)。
它可以帮助您在asp.net核心中读取/写入/更新http cookie。它具有流畅的API,易于使用