通过单个已建立的HTTPS隧道发送多个Web请求?

时间:2019-02-23 12:23:02

标签: .net

我有一个客户端控制台应用程序(在Powershell中),必须从ADFS安全令牌服务中获取SAML令牌。

HTTP顺序:

  1. 以信誉授权;得到一个饼干
  2. 发送cookie;获取会话密钥和一次性密码的表单
  3. 发送密码和会话密钥;获取SAML令牌

问题在于,它们将ADFS STS放在了根本没有持久性的负载均衡器后面,因此,每次打开连接时,您可能会获得不同的主机。这会使会话密钥(每个主机的密钥)无效。

我们要明确-他们不会为小我老大改变设置。提出问题就像将鹅卵石打入井中。

我当前的解决方案使用.NET port of libcurl。该库使HTTPS隧道保持打开状态,以容纳您选择发送的尽可能多的请求,直到您关闭并处置它为止。 Fiddler仅显示一个HTTPS隧道,这是LB所需的。

这可行,但是会导致可支持性问题。

我尝试了本机Powershell cmdlet,WebClient和HttpClient。我已经设置了keep-alive,使用反射来强制设置它。我可以在HTTP标头中看到保持活动状态!但是无论如何,每个请求都会协商一个新的HTTPS隧道。

假设我可以依赖Windows 10上的.NET Framework 4.7.2,是否可以实例化HTTPS隧道然后通过它发送一系列Web请求?

0 个答案:

没有答案