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器
基于这个问题,它似乎是相同的解决方案:
- 将
authenticationMode="CertificateOverTransport"
更改为authenticationMode="MutualCertificate"
- 使用
MessageSecurityVersion.WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10
- 在生成的客户端中,将
ProtectionLevel = ProtectionLevel.Sign
添加到ServiceContractAttribute
。 这避免了身体加密。
解决了!