Socket.ReceiveAsync和SslStream

时间:2009-09-02 13:43:27

标签: c# sockets sslstream

在使用SslStream时似乎无法获得ReceiveAsync的好处,因为我必须通过SslStream进行读取,这只支持Begin * End *异步模型。

是否可以在完成身份验证之前使用SslStream,从那时起直接访问套接字?这意味着我必须找出协商的安全级别,然后自己将正确的加密/解密应用于缓冲区。发送前加密,接收后解密。

这可行吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

SslStream为您提供隐私+服务器身份验证,具体取决于您是否使用ClientCertificates,客户端身份验证。您无法直接使用套接字,因为一旦建立了SSL会话,密钥交换就会将加密和其他算法绑定到会话中,并且无法在代码中复制它。

无论如何,SslStream.Begin / End方法为您提供所需的异步功能。为什么需要回退到Socket.SendAsync / ReceiveAsync()?