我们正在将安全令牌作为cookie添加到服务器的响应中,然后在用户首次登录时将数据返回给客户端(浏览器),并将该cookie作为标题添加到浏览器的$ http中。我们期望所有后续请求都将包含该令牌的Header和Cookie,并且我们正在服务器中检索它们以对请求进行身份验证,以避免XSRF。
CookieHeaderValue cookie=new CookieHeaderValue("cookiename","value");
cookie.secure=true;
cookie.HTTPOnly=true;
Httpresponsemessage.headers.addcookies(cookie);
我们正在使用以下方法来检索Cookie HTTPActionContext.Request.Headers.GetCookies();
这几次都起作用,而几次却不起作用。根据日志,cookie似乎随机为null。当我在浏览器中验证请求和响应时,我可以看到Cookie和标头。 另外,当我检查HTTPActionContext.Request.RequestUri.Scheme时,它显示为http,而不显示为HTTPS(我们的应用程序通过https运行)。我假设由于服务器级别的设置,我们的LoadBalancer正在剥离S,但是由于服务器有时会接收cookie,因此不确定是否可能导致此问题。
您能帮我理解可能是什么问题吗?
我们在服务器上使用WEBAPI,在客户端使用Angular。