我遇到了奇怪的问题。我正在尝试通过 TCP/SSL 连接到 Apple 服务器。我正在使用 Apple 提供的客户端证书进行推送通知。我在本地受信任的根证书和本地个人证书文件夹中的服务器(Win2k3)上安装了证书。
现在我有一个处理该连接的类库,当我从从服务器运行的控制台应用程序调用这个类库时,它工作得非常好,但是当我从 asp.net 页面或 asmx Web 服务调用该类库时,我得到以下异常。
对 SSPI 的调用失败,请参阅内部异常。收到的消息出乎意料或格式错误。
这是我的代码:
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 中添加一些东西或某种安全策略。还要指出的是,我可以在本地开发机器上与控制台和网站很好地连接。
有人有什么想法吗?