Использует ли SslStream LocalCertificateSelectionCallback при работе в качестве сервера? - PullRequest
1 голос
/ 07 мая 2009

Если я создам экземпляр SslStream следующим образом:

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

А затем я использую один из методов AuthenticateAsServer или BeginAuthenticateAsServer. Можно ли вообще вызывать LocalCertificateSelectionCallback (tlsLocalCallback)? И если да, то как?

У меня сложилось впечатление, что это невозможно, поскольку для метода AuthenticateAsServer требуется параметр X509Certificate. И если вы передадите ноль, то он выдаст исключение. Но я хочу быть уверенным, так как я пытаюсь написать API сокетов для использования другими разработчиками в моей команде.

1 Ответ

0 голосов
/ 21 мая 2009

Вы пытаетесь заставить secureStream выбрать, какой сертификат он использует для аутентификации себя на клиенте?

Я не думаю, что это возможно. Делая некоторое Reflectoring, я вижу, что конечный делегат переходит к «m_CertSelectionDelegate» в System.Net.Security.SecureChannel. Быстрый анализ этой переменной, кажется, указывает на то, что она используется только для проверки сертификата сервера или проверки сертификата, который клиент дает для взаимной аутентификации.

...