0

WS2007FederationHttpBinding バインディングを使用し、SOAP 1.1 要求エンベロープを生成する方法はありますか? STS サービスから取得したベアラー トークンを使用して認証するには、WS2007FederationHttpBinding を使用する必要があります。これが私のバインディングです:

    private static Binding GetWS2007FederationHttpBinding()
    {
        var binding = new WS2007FederationHttpBinding(
            WSFederationHttpSecurityMode.TransportWithMessageCredential);
        binding.Security.Message.NegotiateServiceCredential = false;
        binding.Security.Message.EstablishSecurityContext = false;
        binding.Security.Message.IssuedKeyType = SecurityKeyType.BearerKey;
        //binding.MessageVersion.Addressing = AddressingVersion.WSAddressingAugust2004;
        //binding.MessageVersion.Envelope = EnvelopeVersion.Soap11;
        // or
        //binding.MessageVersion = MessageVersion.Soap11WSAddressingAugust2004;
        return binding;
    }

でもbinding.MessageVersion読み取り専用だから変更できないの?

4

1 に答える 1

1

そのためにはカスタムバインディングが必要です。1 つの方法は、WS2007FederationHttpBinding と同等のカスタム バインディングを静的に宣言することです。これを微調整するには時間がかかる可能性があります。または、コードで WS2007FederationHttpBinding を作成し (実際に行っているように)、それをカスタム バインドに複製することもできます。

CustomBinding outputBinding = new CustomBinding(federationBinding.CreateBindingElements());

次に、テキスト メッセージのエンコーディング チャネルを見つけて、その SOAP バージョンを変更します。

于 2013-09-10T17:28:57.737 に答える