spring security使用api所需的医疗人员

spring security使用api所需的医疗人员,api,spring-security,asp.net-mvc-5,Api,Spring Security,Asp.net Mvc 5,我使用SpringBoot开发了一个api,并使用SpringSecurtiy进行了用户身份验证和授权。 我使用spring安全登录表单进行用户身份验证。 我和邮递员一起测试了一下,它工作得很好 但是,当我在asp.net mvc 5项目中实现api时,登录可以工作并返回连接的用户,但在任何其他需要验证用户身份的请求之后,我会收到未经授权的消息 我认为它适用于postman,因为他从登录的响应中生成或获取标题 如何获取它们,以便将它们集成到其他请求中 编辑: 似乎需要JSESSIONID Coo

我使用SpringBoot开发了一个api,并使用SpringSecurtiy进行了用户身份验证和授权。 我使用spring安全登录表单进行用户身份验证。 我和邮递员一起测试了一下,它工作得很好

但是,当我在asp.net mvc 5项目中实现api时,登录可以工作并返回连接的用户,但在任何其他需要验证用户身份的请求之后,我会收到未经授权的消息

我认为它适用于postman,因为他从登录的响应中生成或获取标题

如何获取它们,以便将它们集成到其他请求中

编辑: 似乎需要JSESSIONID Cookie头,我从登录响应头中获取它并将其添加到请求头中,但它仍然不起作用

下面是我添加标题的代码:

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Cookie", loginResponse.Headers.GetValues("Set-Cookie").First().Split(';')[0].Trim());
client.DefaultRequestHeaders.Add("Cache-Control", "no-cache");
client.BaseAddress = new Uri("http://localhost:8080/api/");
HttpResponseMessage response = client.GetAsync("customer/users").Result;
这一行提供我需要的登录响应中的Cookie头值:

loginResponse.Headers.GetValues("Set-Cookie").First().Split(';')[0].Trim()

HttpClient将忽略标头Cookie 创建实例时,需要将带有UseCookies的HttpClientHandler传递给false,这样它就不会忽略它

HttpClient httpClient = new HttpClient(new HttpClientHandler { UseCookies = false })