我遇到了更麻烦的问题。我正在尝试通过TCP/SSL连接到Apple服务器。我正在使用Apple提供的客户端证书进行推送通知。我将证书安装在服务器(Win2k3)上的“本地受信任的根证书”和“本地个人证书”文件夹中。
现在,我有了一个处理该连接的类库,当我从服务器上运行的控制台应用程序调用该类库时,它的工作原理是绝对好的,但是当我从asp.net页或asmx Web服务调用该类库时,我得到了以下异常。
这是我的代码:
X509Certificate cert = new X509Certificate(certificateLocation, certificatePassword);
X509CertificateCollection certCollection = new X509CertificateCollection(new X509Certificate[1] { cert });
// OPEN the new SSL Stream
SslStream ssl = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
ssl.AuthenticateAsClient(ipAddress, certCollection, SslProtocols.Default, false);
ssl.AuthenticateAsClient
是引发错误的地方。这让我发疯。如果控制台应用程序可以正常连接,则说明asp.net网络层安全性一定存在问题,即身份验证失败。...不确定,也许需要在web.config中添加某些内容或某种安全策略。还要指出,我可以在本地开发计算机上通过控制台和网站很好地连接。
有人有什么想法吗?
最佳答案
您是否在系统上安装了证书?如果您正在运行Windows,则它应位于管理控制台下的“本地计算机/个人或受信任的文件夹”中(运行-> mmc)。
关于c# - SslStream.AuthenticateAsClient异常(消息格式错误),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1884959/