WCF错误:找不到令牌validation器

我需要通过SSL使用WCF服务,而请求需要使用一个证书进行签名,并且响应需要使用另一个证书进行validation。

我在执行代码时遇到此错误:

找不到’System.IdentityModel.Tokens.X509SecurityToken’令牌类型的令牌validation器。 根据当前安全设置,不能接受该类型的令牌。

根据WCF跟踪,它在尝试validation响应签名时失败,因为我可以看到来自服务器的响应。

这是我的WCF服务设置:

                                            

正如你所看到的,我尝试了basicHttpBinding和customBinding(使用在线工具http://webservices20.cloudapp.net/default.aspx转换),我试图设置不同的设置组合变体,但仍然会收到此错误。

任何的想法? 取消响应证书签名validation也是一个选项,但我如何设置?

尝试使用具有以下配置的自定义绑定:

  

我有同样的问题,并在这里发布了一个解决方案(对于那些来这里寻找答案的人):

WCF – 找不到X509SecurityToken的令牌validation器

基于这个问题,它似乎是相同的解决方案:

  1. authenticationMode="CertificateOverTransport"更改为authenticationMode="MutualCertificate"
  2. 使用MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10
  3. 在生成的客户端中,将ProtectionLevel = ProtectionLevel.Sign添加到ServiceContractAttribute 。 这避免了身体加密。

解决了!