我正在尝试将信息(以mime文件的形式)发送到使用双向身份验证的第三方主机服务器。经过多方的哄骗,我从他们的非技术支持人员那里获得了足够的信息,以发现这很可能是TLS/SSL通信的一种。他们使用客户端和服务器握手。我发现以下示例:
sslstream example。但是使用它时遇到了问题(TcpClient拒绝查看主机地址)。

在我走得太远之前,我希望有人可以指出一些好的例子或有关此过程的更多信息。我感到很失落。

最佳答案

通过两种方式进行身份验证,可能意味着它们要求客户端证书。这意味着在握手期间,客户端也必须向服务器出示证书。最常见的SSL行为是仅服务器部分提供证书,例如当您访问使用HTTPS的普通站点时。

至于SslStream,它的使用非常简单。为了能够提供客户端证书,您需要在证书存储区中有一个证书或一个pfx文件,您可以在运行时将其加载到内存中。

我发现this sample似乎足够好。 Here is another one。第二个不使用客户端证书,但是您可以将它们作为参数添加到AuthenticateAsClient调用中。

如果TcpClient拒绝查看主机地址,则很可能是某种连接问题,与实际的SSL实现无关。

10-04 12:16