これは、この質問 hereのフォローアップです。直接関係ないかも。
Secure Token Service から取得したトークン (フェデレーション セキュリティ、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 に準拠したサービスです。