在.NET调用加了SSL验证的WebService可让我费了不少心思。要使用SSL证书加密,必须要根据证书创建X509Certificate实例,添加到WebService实例的ClientCertificates集合属性中:

string certificateFile = AppDomain.CurrentDomain.BaseDirectory + @"\certificate.cer"; System.Security.Cryptography.X509Certificates.X509Certificate certificate = System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile(certificateFile); creatinoService.ClientCertificates.Add(certificate);

但是我这里,调用却会提示出现:The remote certificate is invalid according to the validation procedure.异常,它的内部异常是WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel。通过网络资源找到了解决方案:

using System.Net; using System.Security.Cryptography.X509Certificates; public class MyPolicy : ICertificatePolicy { public bool CheckValidationResult( ServicePoint srvPoint , X509Certificate certificate , WebRequest request , int certificateProblem) { //Return True to force the certificate to be accepted. return true; } // end CheckValidationResult } // class MyPolicy System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();

通过上面的代码,马上就解决了我的问题。

但是由于是使用.NET 2.0,它会提示你CertificatePolicy 属性已经过期了,我们可以使用下面的回调方式来替代它:

System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertificateValidationCallback);

增加一个静态回调函数:

public static bool RemoteCertificateValidationCallback( Object sender, X509Certificate certificate, X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors ) { //Return True to force the certificate to be accepted. return true; }

你会发现,这样同样也能解决这个问题。

相关文章:

http://blog.joycode.com/mvm/archive/2006/03/25/734...

http://blog.jerrysherman.com/PermaLink,guid,c26899...

调用加了SSL签名的WebService相关推荐

  1. 国密SM4加解密SM2签名验签COM组件DLL

    提供给第三方软件,调用COM组件DLL方式进行实现,如delphi.PB等. 基于C#编写的COM组件DLL,可实现SM2签名验签,SM4加解密,100%适用于黑龙江省国家医保接口中进行应用. 功能包 ...

  2. 运行java提示未签名_java – JNLP:在签名代码中加载未签名的代码

    我们在克服Java webstart的混合代码错误时遇到了困难.总之,我们有我们的主要JNLP文件,我们已经签署了它直接加载的所有代码.我们已将all-permissions选项添加到主JNLP中.它 ...

  3. nginx 稳定版 1.16.0 发布,支持动态加载 SSL 证书

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   nginx 1.16.0 稳定版已发布,包含来自 1.15.x 主线分支的新功能和错误修复: 针对流模块(stream module)中的 ...

  4. jquery点击后执行PHP加载div,PHP-将JQuery自动完成附加到由Ajax调用加载的文本字段...

    我有一个简单的Web应用程序,在其中创建了一个向导,每个向导页面都包含从数据库填充的不同表单字段,当用户按下时,接下来使用Ajax调用从服务器检索页面数据.这是针对Ajax调用从服务器检索的页面代码. ...

  5. AS打包V1和V2签名,使用乐固加固安装包签名有误 ShieldCode = 40186

    AS打包V1和V2签名,使用乐固加固安装包签名有误 ShieldCode = 40186 乐固加固出现 安装包签名有误 ShieldCode = 40186 官方解答是 传送门 确认上传的应用是已签名 ...

  6. 如何使用RSA 对数据加解密和签名验签?一篇文章带你搞定

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 三分割据纡筹策,万古云霄一羽毛. ...

  7. 百度地图调用加载显示Marker,并添加点击事件

    百度地图调用加载显示Marker,并添加点击事件 注册百度开发者账号,申请应用AK 百度地图开发平台官网 点击右上角控制台,选择创建应用 创建应用,勾选浏览器端,白名单填写* 注:如上线更改为公网IP ...

  8. nginx 稳定版 1.16.0 发布 支持动态加载SSL证书

    Nginx(发音同 engine x)是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行,可以在 UNIX.GNU/Lin ...

  9. 讲讲在银联电子支付工作时加解密、签名验签的那些事(纯粹的干货)。

    今天我们来讲讲系统间的交互需要哪些必要的东西才能确保互相通信会没有问题呢? 首先来看看最传统的系统交互,即两者直接互相明文传送,在这种情况下,若是被第三方拦截,会造成不可预估的影响.那么针对这种情况我 ...

最新文章

  1. Python入门(一)数据类型、循环语句
  2. 从视觉系统的原理入手 破解VR眩晕症
  3. 图解数据库辅助软件教程
  4. python数据导出excel_python 数据生成excel导出(xlwt,wlsxwrite)代码实例
  5. 最强N皇后JAVA解题代码
  6. python自动登录教程_Python 实现自动登录+点击+滑动验证功能
  7. 任正非公开信:投入 20 亿美元全面提升华为软件质量
  8. 【1】flink-source读取数据
  9. c语言程序设计徐立辉答案,C语言程序设计 牛志成,徐立辉,刘冬莉著 清华大学出版社 9787302165620...
  10. python窗体处理access数据库_用Python操作MS Access数据库
  11. 路由器连接久点就慢下来了,怎么回事?
  12. 谭浩强c语言指针讲稿,谭浩强c语言教程 指针.ppt
  13. JavaScript设计模式-观察者模式
  14. RestTemplate设置Headers
  15. 【踩坑记录】.bss段;.bss段到底占不占目标文件的空间,有没有记录对应信息。
  16. SolidWorks-旋转凸台的使用
  17. Rasa 聊天机器人Rasa_NLU_Chi
  18. 2021-09-07 PostMan API请求错误
  19. postgresql 页损坏(corrupted page)之checksum功能
  20. <Android开发> Android vold - 第四篇 vold 的NetlinkHandler类简介

热门文章

  1. 微信公众平台开发 微信JSSDK开发
  2. [ZJOI2007]棋盘制作 报表统计 矩阵游戏 时态同步
  3. 在任意的远程桌面的session中运行指定的程序
  4. 变量,作用域,和内存问题
  5. MS SQL SERVER 中几个函数的用法
  6. libpython3.7m so静态库_Linux下编译安装python3.7
  7. 如何在电脑上创建python_python怎么创建类Python中的除法
  8. 织梦 m list.php tid,在织梦标签dede:list中增加noflag属性的方法支持5.7版本
  9. debian10新建文档_Debian 10(Buster)安装过程图文详解
  10. linux文件删除漏洞,OpenStack Glance v1 API任意文件删除漏洞(CVE-2012-4573)