我有一个返回 HttpResponseMessage 的 API 操作。
API地址如下:http://localhost/login?authcode=xxx
API 操作执行一些登录身份验证并将用户重定向到注册或欢迎页面。代码如下:
var response = new HttpResponseMessage();
var cookie = new CookieHeaderValue("token", "ThisIsTheTokenNeeded");
response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
response.StatusCode = HttpStatusCode.Found;
response.Headers.Location = new Uri("http://localhost/welcome.html");
return response;
在welcome.html中,我使用“document.write(document.cookie)”并且看不到名为“token”的cookie。一些它是如何丢失的。谁能告诉我如何完成这个任务,或者这个架构毕竟不正确?
我找到了答案。范围未设定。在我的原始代码中缺少以下行。
cookie.Path = "/";
因为重定向到另一个页面,即使在同一个域下,cookie在不同页面之间也是无效的。如果未设置路径,则 cookie 仅对原始请求目标有效http://localhost/login?authcode=xxx
今天我了解到,在声称有人吃了 cookie 之前,我需要仔细检查 cookie 的域和路径属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)