Web Service via SSL

如果你调用一个启用了SSL的Web服务,你会收到如下错误:

"The underlying connection was closed: Could not establish trust relationship with remote server."

这是因为客户端没有接受服务端证书,在添加服务的时候,有个提示框出来让你确认证书,但是在程序调用时是没有办法去选择的,那么我们可以创建一个证书策略来解决这个问题。

 System.Net.ICertificatePolicy接口定义了自定义证书验证策略,我们就实现这个接口,然后实现自己的CheckValidationResult方法就可以了。对了,没那么复杂的,看代码:

 

复制代码
Code
public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
{
 
public TrustAllCertificatePolicy()
 {}

 
public bool CheckValidationResult(ServicePoint sp,
  X509Certificate cert,WebRequest req, 
int problem)
 {
  
return true;
 }
}
复制代码

 

对的,return true就可以了。

我们在创建Web Service的代理类实例前,创建我们自己的证书验证策略类就好了:

 

Code
System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();

 

然后再调用Web Service的方法就没有问题了。

from here.

posted @   亮小猪  阅读(439)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?
点击右上角即可分享
微信分享提示