1

如果我像这样创建一个 SslStream 实例:

secureStream = new SslStream(stream, true, tlsRemoteCallback, tlsLocalCallback);

然后我使用 AuthenticateAsServer 或 BeginAuthenticateAsServer 方法之一,是否可以调用 LocalCertificateSelectionCallback (tlsLocalCallback)?如果是这样,怎么办?

我的印象是这是不可能的,因为 AuthenticateAsServer 方法需要一个 X509Certificate 参数。如果你传递 null,那么它会引发异常。但我想确定一下,因为我正在尝试编写一个套接字 API 供我团队中的其他开发人员使用。

4

1 回答 1

0

您是否尝试让 secureStream 选择它用来向客户端验证自己的证书?

我不认为这是可能的。做一些反射,我看到委托最终转到 System.Net.Security.SecureChannel 中的“m_CertSelectionDelegate”。对该变量的快速分析似乎表明它仅用于验证服务器证书或验证客户端为相互验证自身而提供的证书。

于 2009-05-21T19:10:31.690 回答