2010-05-11 118 views
2

我正在将Java Web服务用作来自.NET的WCF服务。找不到'System.IdentityModel.Tokens.X509SecurityToken'令牌类型的令牌认证器

该服务具有HTTPS端点,并要求使用客户端证书对消息进行签名。

我已经设置了WCF跟踪,并且使用服务跟踪查看器我可以确认请求已被签名并按预期发送,并且服务返回有效的响应。但是我的控制台应用程序不接受该响应。相反,下面的异常被抛出:

无法找到 的 “System.IdentityModel.Tokens.X509SecurityToken” 令牌类型的令牌认证。根据当前的 安全设置,该类型的令牌不能被接受 。

我在做什么错?

回答

-1

显然,WCF和此Java Web服务实现此类安全性(可能特定于此服务或可能是一般Java问题)的方式存在一个小的但显着的变体。

收到正确的响应,但WCF无法解释令牌元素。

我的解决方案,或者相当的解决方法是利用WCF的前身WSE(Web Service Enhancements 3.0)。

对Microsoft.Web.Services3程序集的引用,很多头部搔痒(WTFs)和代码的冗长工作,后来我得到了我的回应。

+0

我正在处理同样的问题,同时从我的WCF客户端使用IBM DataPower服务。你可以发布代码示例或将它发送给我? – YONDERBOI 2011-03-31 16:23:57

+0

我以不同的方式解决了问题。看到[链接](http://stackoverflow.com/questions/5503684/ibm-datapower-3-7-1-x-issues-with-wcf-clients) – YONDERBOI 2011-04-01 00:59:44

+3

这是有点令人失望,这个答案没有任何人都需要实现相同解决方案的详细程度。 – Fenton 2012-09-28 13:48:43