苦苦寻找答案。我设置了一个cookie,它基本上允许我跟踪访客购物车。设置cookie很好,但是我找不到更新到期日期的方法,因此每次用户执行与推车相关的操作时,它将在未来90天更新。我的代码如下。这是有问题的AddToCart API方法。
[ActionName("AddToCart")]
[HttpGet]
public HttpResponseMessage AddToCart(int id)
{
HttpResponseMessage msg = new HttpResponseMessage();
CookieHeaderValue header = Request.Headers.GetCookies("visitor").FirstOrDefault();
VisitorViewModel visitor;
if (header == null)
{
visitor = _visitorManager.Create().ToViewModel();
header = new CookieHeaderValue("visitor", visitor.Cookie);
header.Expires = DateTime.Now.AddDays(90);
msg.Headers.AddCookies(new CookieHeaderValue[] { header });
}
else
{
visitor = _visitorManager.Get(header["visitor"].Value).ToViewModel();
header.Expires = DateTime.Now.AddDays(90);
msg.Headers.AddCookies(new CookieHeaderValue[] { header });
}
_cartManager.AddToCart(id, visitor.ID);
return msg;
}
如果用户还没有获得cookie,它会正确添加cookie,但如果cookie已经存在,我最终会得到第二个cookie,这是我根据代码所期望的。只是找不到更新现有客户端cookie的方法。