在我对他进行身份验证后,我试图向用户发送一个 cookie。一切正常,响应正在我的代码中构建,但即使在客户端得到响应之后,浏览器中也没有保存 cookie(通过 chrome F12 -> Resources 检查它)。
注意:我可以看到我的 cookie 在提琴手中发送的响应:
我想知道出了什么问题以及为什么浏览器不保存 cookie。
这是处理 Post 请求的 WebAPI 函数:
public HttpResponseMessage Post([FromBody]User user)
{
IDal dal = new ProGamersDal();
var currentUser = dal.GetUser(user.Username, user.Password);
if (currentUser == null)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Bad request.");
}
else
{
var res = new HttpResponseMessage();
var cookie = new CookieHeaderValue("user",JsonConvert.SerializeObject(new ReponseUser(){username = currentUser.Username, role = currentUser.Role}));
cookie.Expires = DateTimeOffset.Now.AddDays(1);
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";
res.Headers.AddCookies(new CookieHeaderValue[] { cookie });
return res;
}
}