构建代理API-身份验证Cookie

时间:2019-10-29 09:54:28

标签: c# .net-core asp.net-core-webapi

请记住,我不是开发人员,只是通过阅读和学习获得尽可能多的学习机会。

我们目前正在构建一个带有后端API的前端解决方案(此问题不在此问题范围内)。此API还将对我们网络上的外部API发出一些请求。

我的问题不是专门针对功能本身,因为此代码可以正常工作并执行我需要的操作,而是有关最佳实践,性能和解决此问题的方法。

因此,要具体点:

我们的一个外部API具有AuthenticationScheme,您可以在其中发布授权标头:

client.BaseAddress = new Uri(serverURI);
client.DefaultRequestHeaders.Add("Authorization", authparam);

string json = JsonConvert.SerializeObject(null);
StringContent content = new StringContent(json);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

HttpResponseMessage responseMessage = client.PostAsync("signin", content)

我与该API通讯的每个端点(大约20个)都重复使用了此代码。上面的代码返回一个带有ASP.NET_SessionID和sessionID的cookie。

然后,我们重用客户端以发出进一步请求以实际使用API​​(在同一端点内):

HttpResponseMessage responseMessage2 = await client.GetAsync("endpoint", cancellationToken);
if (responseMessage2.IsSuccessStatusCode)
{
      var stringContent = await 
      responseMessage2.Content.ReadAsStringAsync();
      var content2 = JsonConvert.DeserializeObject<IEnumerable<model>>(stringContent)
      Where(ms => ms.SystemName.StartsWith(string));
      return Ok(content2);
      }

由于我正在执行此身份验证过程并在外部API中创建新的sessionID,因此我们目前对该外部API的每个请求都会遇到约2秒的延迟。

我可以以任何方式重复使用Cookie吗,我将如何开始使用它?此外,在每次对我的API的API调用上进行授权时,都会有大量重复的代码-并占用外部API中的许多会话。

0 个答案:

没有答案