我有一个API动作,返回一个HttpResponseMessage.
API地址如下: http://localhost/login?authcode=xxx
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的域名和路径属性,然后再声称有人吃了它.