在ASP.NET API控制器操作中更新cookie的到期日期

时间:2015-05-08 07:04:39

标签: cookies asp.net-web-api

苦苦寻找答案。我设置了一个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的方法。

0 个答案:

没有答案