ASP.NET Core MVC(.NET Framework)编写,读取和更新cookie

时间:2017-04-06 20:15:14

标签: cookies asp.net-core

我在我的一个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更新" !!

2 个答案:

答案 0 :(得分:4)

Cookie无法更新。也就是说,他们也不能删除。这不是MVC的问题,它是关于cookie的事实,参见例如https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies:服务器可以对cookie执行的唯一操作是设置它。将cookie视为浏览器而非服务器所拥有的颜色可能会有所帮助。

  • 要更新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,易于使用