WCF分布式开发常见错误(22)

WCF分布式开发常见错误(22):The caller was not authenticated...如何在XP系统为WCF设置可信任的证书

我在XP 专业版系统进行WCF安全编程的时候,遇到的错误。使用的安全验证 方式是: UserName and Password Security 绑定协议:.WSHTTPBinding。我 会把如何在XP环境下设置可信证书的过程,详细的描述出来。因为这个错误就是 和证书有直接关系,对于很多XP环境下进行WCF编程的学习者来说,应该有不错 的参考价值。错误信息:The caller was not authenticated by the service 。服务验证调用者失败。XP系统配置证书还似乎比较麻烦,你像Windows服务器 系列,我们可以建立CA来控制证书的状态。虽然我们可以自己安装。但是过于麻 烦。正如申请一个免费的证书一样。仅仅为了个人学习,一切都希望简单,快速 地学习WCF的安全编程。我这里也是使用了makecert制作的证书。

设置了服务器证书,消息安全模式。  我搜索的资料。如下:

The caller was not authenticated by the service - WCF Security using ...

The caller was not authenticated by the service

Caller was not authenticated by the service

WCF - The caller was not authenticated by the service

WCF - TCP+Cert "The caller was not authenticated by the service." 但是没什么帮助,类似的问题很多都是没有解决。问题我也放到WCF中文和英文 论坛:

http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/cd3f0247- a1b4-43c0-af1c-7b0e609b1e3b

http://social.microsoft.com/Forums/zh-CN/wcf/thread/3a5417c6-fdd1- 47d7-9757-ebc8ede7affb。

【1】问题描述:错误信息的截图:

一样采用UserNamePasswordValidator验证方式。wsHttpBinding,此绑定支 持WS安全规范。必须启动服务端证书。 WCF分布式开发常见错误(21):unable to open its IChannelListener.分发器未能打开侦听器 ,已经遇到过一次了问题。 当时导致错误的原因是没有启用服务端证书。 这个错误修正完毕以后,再次启 动服务,添加服务引用,生成了客户端代理等相关文件。  服务行为的证书配 置信息如下:

<serviceBehaviors>
         <behavior name="WCFService.WCFServiceBehavior">
           <serviceMetadata httpGetEnabled="true" />
           <serviceDebug includeExceptionDetailInFaults="false" />
           <serviceCredentials>
             <serviceCertificate  x509FindType="FindBySubjectName"  findValue="MyServer" storeLocation="CurrentUser"/>
             <clientCertificate >
               <authentication certificateValidationMode="None" />
             </clientCertificate>
             <userNameAuthentication userNamePasswordValidationMode="Custom"      customUserNamePasswordValidatorType="WCFService.MyUserNamePasswordVali dator,WCFService" />
           </serviceCredentials>
         </behavior>
       </serviceBehaviors>

这句话就是服务端查询证书的依据:<serviceCertificate  x509FindType="FindBySubjectName" findValue="MyServer" storeLocation="CurrentUser"/>。在CurrentUser位置,查找主题为 MyServer的证书。

使用x509证书是符合WS安全规范。证书是非对称加密算法的典型应用。至于 如何获得非对称加密、证书,我在之前的系列文章里已经详细讲过,需要的话可 以再参考:WSE3.0构建Web服务安全(2):非对称加密、公钥、密钥、证书、签名 的区别和联系以及X.509 证书的获得和管理

时间: 2024-11-01 19:14:00

WCF分布式开发常见错误(22)的相关文章

WCF分布式开发常见错误

WCF分布式开发常见错误(30) WCF分布式开发常见错误(29) WCF分布式开发常见错误(28) WCF分布式开发常见错误(27) WCF分布式开发常见错误(26) WCF分布式开发常见错误(25) WCF分布式开发常见错误(24) WCF分布式开发常见错误(23) WCF分布式开发常见错误(22) WCF分布式开发常见错误(21) WCF分布式开发常见错误(20):TimeoutException was unhandled WCF分布式开发常见错误(19) WCF分布式开发常见错误(18

WCF分布式开发常见错误(19)

WCF分布式开发常见错误(19):There was an error opening the queue打开消息队列出错 在调试托管宿主 WCF MSMQ消息队列代码的时候出现错误: There was an error opening the queue. Ensure that MSMQ is installed and running, the queue exists and has proper authorization to be read from. The inner exc

WCF分布式开发常见错误(15)

WCF分布式开发常见错误(15):Communication with the underlying transaction manager has failed 今天本地调试WCF事务的时候出现这个错误:Communication with the underlying transaction manager has failed. 搜索了很多资料,查找原因.是因为MSDTC的问题.此协议要使用分布式事务协调器. 或者是事务协议的问题. 解决办法: 修改事务通信协议. <bindings>

WCF分布式开发常见错误(13)

WCF分布式开发常见错误(13):The transaction under which this method call was executing ,此方法调用的事务被异步中断 今天WCF事务编程的时候遇到这个错误:The transaction under which this method call was executing was asynchronously aborted.此方法调用的事务被异步中断. 错误截图如下: 原因可能由多个.我查询了很多资料.国内论坛很少有人讨论这个问题

WCF分布式开发常见错误解决(12)

WCF分布式开发常见错误解决(12):The server was unable to process the request,服务无法处理请求 进行WCF编程过程中会遇到这样的错误:服务无法处理的请求由于内部错误. 具体信息如下: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeEx

WCF分布式开发常见错误解决(11)

WCF分布式开发常见错误解决(11):There is already a listener on IP endpoint ,IP 终结点 已经存在侦听器 进行WCF服务终结点配置的过程中,当你配置服务终结点端口,启动服务程序的时候会遇到如下错误,服务无法启动,1.错误信息如下: IP终结点(端口) 0.0.0.0:8002已经存在一个侦听器,请确保程序中没有多次使用一个终结点,或别的程序没有监听此终结点(端口) There is already a listener on IP endpoin

WCF分布式开发常见错误解决(10)

WCF分布式开发常见错误解决(10):套接字连接中断,The socket connection was aborted (使用Windows Service作为宿主的时候也会出现这样的情况,搜索的) 我们这里是自定义托管宿主,在进行WCF编程开发过程时,使用NetTcpBinding绑定协议,作为通讯协议,可能会引发这样的异常,导致数据如法传输.套接字连接中断,可能是由于消息处理错误,或者远程宿主接受超时引起,或者是底层网络资源问题导致,本地套接字时间是'00:00:59.7656250'.具

WCF分布式开发常见错误解决(9)

WCF分布式开发常见错误解决(9):无终结点监听,There was no endpoint listening at 当我们添加服务元数据地址,查找元数据服务,进行反序列操作.会出现这样的错误:无终结点监听Metadata contains a reference that cannot be resolved: 'net.tcp://localhost:9004/mex'. There was no endpoint listening at net.tcp://localhost:9004

WCF分布式开发常见错误解决(7)

WCF分布式开发常见错误解决(7):System.InvalidOperationException,Cannot have two operations in the same contract 我们启动服务宿主程序的时候,有可能出现如下的无效操作异常,信息如下: Cannot have two operations in the same contract with the same name, methods SayHello and SayHello in type WCFService