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 に答える