这是这个问题的后续行动。可能与此没有直接关系。
我正在尝试调用使用从安全令牌服务获得的令牌(联合安全性,WS-Trust 1.3)保护的 Web 服务。我有SecurityToken
(通用 XML),我创建了一个ChannelFactory<T>
然后调用CreateChannelWithIssuedToken
.
当我尝试调用服务方法时会出现实际错误。消息很短,我实际上不知道接下来该往哪里看:MessageSecurityException
和消息Unable to create token reference。嗯,这可能意味着任何事情。
相关代码:
var binding = new WS2007FederationHttpBinding(WSFederationHttpSecurityMode.TransportWithMessageCredential);
binding.Security.Message.EstablishSecurityContext = false;
var factory = new ChannelFactory<IService>(
binding,
new EndpointAddress("..."));
factory.Credentials.SupportInteractive = false;
var token = STSClient.Issue();
_channel = factory.CreateChannelWithIssuedToken(token);
调用服务是:
var svcParams = ...;
//MessageSecurityException is thrown here
var svcResponse = _channel.SomeServiceMethod(params);
我想知道接下来我可以去哪里看。什么可能导致此错误?
额外细节:
- 在向服务器发出任何请求之前引发错误(使用 Fiddler 检查)。
- 服务器不是基于 WCF 的。它是一些符合 WS-Trust 和 WS-Security 的服务。