asp.net 调用带证书的webservice解决办法

最近在朋友弄一个调整省政府政务工作流的程序。。

需要把当前的信息推送到政务网上,采用的是带证书的https webservice。。

下面说一下实现过程

第一步,引用webservice地址,删除web.config中相关配置。同时安装好证书

用如下数据替换:

[html] view plain copy

  1. <system.serviceModel>
  2. <bindings>
  3. <customBinding>
  4. <binding name="IServiceSoapBinding" closeTimeout="00:01:00"
  5. openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00">
  6. <textMessageEncoding maxReadPoolSize="64" maxWritePoolSize="16"
  7. messageVersion="Soap11" writeEncoding="utf-8">
  8. <!-- 政务大厅接口需要使用Soap11 -->
  9. <readerQuotas maxDepth="32" maxStringContentLength="819200000" maxArrayLength="1638400000"
  10. maxBytesPerRead="4096000" maxNameTableCharCount="16384000" />
  11. </textMessageEncoding>
  12. <httpsTransport manualAddressing="false" maxBufferPoolSize="52428800"
  13. maxReceivedMessageSize="6553600" allowCookies="false" authenticationScheme="Anonymous"
  14. bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
  15. keepAliveEnabled="true" maxBufferSize="6553600" proxyAuthenticationScheme="Anonymous"
  16. realm="" transferMode="Buffered" unsafeConnectionNtlmAuthentication="false"
  17. useDefaultWebProxy="true" requireClientCertificate="true" />
  18. </binding>
  19. </customBinding>
  20. </bindings>
  21. <client>
  22. <endpoint address="https://WebService网址/CXFWebService/webservice/iservice" behaviorConfiguration="endpointBehavior1" binding="customBinding" bindingConfiguration="IServiceSoapBinding" contract="ZwdtServices.IService" name="ServiceImplPort" />
  23. </client>
  24. <behaviors>
  25. <endpointBehaviors>
  26. <behavior name="endpointBehavior1">
  27. <dataContractSerializer maxItemsInObjectGraph="209715200"/>
  28. <clientCredentials>
  29. <clientCertificate  findValue="证书用户" x509FindType="FindBySubjectName" storeLocation="LocalMachine" storeName="My"/>
  30. <serviceCertificate>
  31. <authentication certificateValidationMode="None"/>
  32. <!--<defaultCertificate findValue="ShanXi Digital Certificate Authority" x509FindType="FindBySubjectName" storeLocation="CurrentUser" storeName="My"/>-->
  33. </serviceCertificate>
  34. </clientCredentials>
  35. </behavior>
  36. </endpointBehaviors>
  37. </behaviors>
  38. </system.serviceModel>

但在实际调用时,提示找不到对应的证书用户

我猜测可能是iis用户访问证书有关,那么就在用户和计算机上都导入证书。运行MMC,打开两个证书管理器,都把证书导入一次。

如图

完成之后,果然错误不一样。。

继续运行,出现没有权限的错误

继续设计证书权限

OK完成。。。。。

时间: 2024-10-10 22:57:28

asp.net 调用带证书的webservice解决办法的相关文章

C#通过http post方式调用需要证书的webservice

前一段时间做花旗银行的项目,用到花旗的接口是websevice,由于很多原因直接在项目中引用webservice不成功,于是就用了http post方式请求,把请求信息(xml格式)组装之后发送到服务器,返回结果. 下面就把我当时做的方法分享,希望对大家有用. 1,首先在webconfig中配置需要的信息 注:RewardUrl为url地址中公用的部分,因为后面调用不同的接口,地址是不一样的,所以就抽出来单独定义了,CommonUrl为IP+端口号,因为这个地址有可能更换所以也单独定义了. <a

[.net] 关于CS0016: Could not write to output file ‘c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files… ‘Access is denied.’ 的解决办法

[.net] 关于CS0016: Could not write to output file ‘c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files… ‘Access is denied.’ 的解决办法 1.添加用户"Network Service” 和 “IIS_IUSERS” 读下面目录的读写权限 a) C:\Windows\Temp b) C:\Windows\Microsoft.NET\Framewo

PHP多次调用Mysql存储过程报错解决办法

PHP多次调用Mysql数据库的存储过程会出现问题,主要问题为存储过程中执行多次SQL语句不能一一释放导致的,网上找了一些解决办法,比如使用 multi_query 然后一个一个释放,但是发现根本不适合我们的项目,我们使用CI框架写的,更多的是使用CI的数据库处理方法.所以只能另辟蹊径. 一次偶然,把Mysql链接方式改成了mysqli,两种不同的PHP连接mysql的扩展,官方在高版本中推荐使用mysqli,结果却奇迹般好了,使用Mysql长连接也行,天意么? PHP多次调用Mysql存储过程

Asp.Net长文件名下载的问题和解决办法

在Asp.Net中写了一个附件上传和下载的程序,附件上传到数据库中,然后将附件的GUID保存起来,我们可以根据GUID来找到数据库中的附件,一般附件下载的代码是: <!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->

由ORA-28001同时带出ORA-28000的解决办法

今天,在登录tomcat前台界面时发现不能登录,查看log后发现原来是ORA-28001: the password has expired的错误,这个错误是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录. 可通过如下SQL语句 SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_L

.net 在不同情况下调用带soapheader的webservice的方式

国庆长假到了,本想出去玩玩,无奈自己屌丝一枚,啥都没有,只能自己宅在家里思考思考人生.不过人生还是过于复杂,一时间也想不出个所以然,只能是整理一下在工作中遇到的一些小问题,首先是关于带soapheader的webservice. 一.webservice大家都用的比较频繁,有时也有一些带soapheader的webservice,首先一种最简单的调用soapheader的情况就是,如果对方的webservice也是用.net写的,可能会是这种方式 [WebMethod] [SoapHeader(

服务器证书无效的解决办法

很多朋友可能都遇到过,登陆网站时,浏览器提示服务器证书无效.例如,登陆百度知道,登陆京东,登陆淘宝. 用IE,或者360安全浏览器,或者360极速浏览器7,都是一样的结果. 笔者也遇到过这个情况. 笔者的电脑,操作系统是WinXP SP2. 经过摸索,发现了两个解决办法. 方法一 使用360极速浏览器8 方法二 将XP的补丁升级到SP3

GeoServer中一个shape发布多个图层时出现调用空白的问题及解决办法

最近一个项目要用GeoServer,匆忙上手就用,遇到了很多可能出人意料的问题,"用一个shape文件发布多个图层时出现openlayers调用显示空白的问题"就是其中一个,百思不得其解,到GeoServer中文社区遍查贴子,GeoServer.org中扫完UserManual,花了一天半时间,也没有找到答案,中午趴着眯会儿时忍不住还在想,到处都没有相关资料,肯定不是一个常规问题,于是静下心来想,发布一个图层的几个关键环节和服务渲染的原理,工作区->数据存储->(图层+样式

.net 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法

web程序发布后,通过浏览器访问程序显示如下的错误信息: 编译器错误消息: CS0433: 类型“ASP.global_asax”同时存在于“c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\53b6b4c0\fd28ca79\assembly\dl3\5e116b20\5071ece6_c2e1c901\App_global.asax.DLL”和“c:\WINDOWS\Microsoft.NET