SslStream在充当服务器时是否使用LocalCertificateSelectionCallback?

时间:2009-05-07 18:56:50

标签: c# ssl sslstream

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

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

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

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

1 个答案:

答案 0 :(得分:0)

您是否尝试使用secureStream选择用于向客户端验证自身的证书?

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