gpt4 book ai didi

c# - Windows.Web.Http.HttpClient 问题连接到具有不同客户端证书的同一服务器

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:40 25 4
gpt4 key购买 nike

当我使用具有不同客户端证书的 https 与同一服务器端点建立多个连接时,我遇到了 Windows.Web.Http.HttpClient 问题。

我的设置有点像:

连接 A:连接到 https://www.myserver.com/path?querystring - 使用 HttpBaseProtocolFilter 用于创建为“客户端证书 A”配置的 HttpClient 实例。

一切正常。

现在我创建另一个连接,使用一个新的 HttpClient 实例到同一服务器(不同的查询字符串),这次过滤器配置为“客户端证书 B”。

此连接似乎可以连接到服务器,但看起来服务器正在获取错误的客户端证书。我无权访问服务器或其日志,但从我收到的错误中我想知道它是否正在获取“客户端证书 A”。

我注意到,如果我输入“.”,问题就会消失。第二个连接中服务器名称的“.com”部分后的字符。这让我怀疑在某处有一些基于服务器名称的缓存。

这在 Windows 8.1 Surface 平板电脑上失败。它似乎在我的开发笔记本电脑上工作正常。我正在构建的应用程序是 Windows 应用商店应用程序,因此这也可能是问题的一部分。

有没有人知道客户端证书是如何缓存的,或者 ssl/tls 连接对于 HttpClient 实例来说是否是“本地的”?

Windows App Store 应用 (C#) 能否清除/禁用/断开任何现有的 ssl/tls session ?

欢迎任何指点。

PS:我正在构建的应用程序是一个“监控”应用程序,它可以使用不同的客户端证书连接到服务器以访问不同的“帐户”。该应用程序旨在显示多个帐户的聚合 View ,因此需要针对同一端点使用多个不同的客户端证书。这一切都适用于应用程序的 Android/iOS 版本,但我无法让 Windows 版本正常工作..(哦,服务器/帐户访问机制不在我的控制之下)

最佳答案

I note the problem goes away if I put a '.' character after the '.com' part of the server name in the second connection. This makes me suspicious that there is some caching somewhere based on server name.

似乎是 http 客户端的缓存行为导致了这个问题...

您可以尝试以下方式关闭缓存。

HTTPClient every time returns the same string

或关注 SO 帖子也可以帮助您。

How to stop credential caching on Windows.Web.Http.HttpClient?

关于c# - Windows.Web.Http.HttpClient 问题连接到具有不同客户端证书的同一服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38388466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com