您的位置:首页 > 编程语言 > ASP

asp.net页面去调用通过SSL加密的webservice报错

2014-11-19 14:11 393 查看

通过C#访问webservice时遇到一个问题,首先通过对方提供的wsdl生成了调用代理类,在测试能否正常访问时,本机调试(http协议)一切正常,当访问正式环境时(https协议),总是报“基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系”InnerException信息为:根据验证过程,远程证书无效。

在网上找到解决方法:

http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/1591a00d-d431-4ad8-bbd5-34950c39d563

依照上面的描述操作,问题解决,以作纪念

分以下三步:

1.添加引用

using System.Net;

using System.Net.Security;

using System.Security.Authentication;

using System.Security.Cryptography.X509Certificates;

2.在生成的代理类中添加RemoteCertificateValidate函数

private static bool RemoteCertificateValidate(object sender, X509Certificate cert,X509Chain chain, SslPolicyErrors error)

{

System.Console.WriteLine("Warning, trust any certificate");

//为了通过证书验证,总是返回true

return true;

}

3.在生成的代理类的构造函数中添加

//验证服务器证书回调

ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: