1

WCFクライアント(SOAPサービスを呼び出す)用に配置ProtectionLevel = ProtectionLevel.Noneしましたが、WCFはまだヘッダーに署名を追加しています。ServiceContract

[ServiceContract(ConfigurationName = "IMyOutboundService", ProtectionLevel = ProtectionLevel.None)]

このクライアントのヘッダー署名をオフにするにはどうすればよいですか?

customBindingwithを使用していてauthenticationMode="MutualCertificate"、を設定し<textMessageEncoding messageVersion="Soap11WSAddressing10"/>ました。これが許される限り、別のバインディングを使用できます。

現在のバインディングは次のとおりです。

    <binding name="MyBinding" openTimeout="00:00:10" sendTimeout="00:00:10" >
      <textMessageEncoding messageVersion="Soap11WSAddressing10" />
      <security authenticationMode="MutualCertificate"
                includeTimestamp="true"
                enableUnsecuredResponse="true">
        <localClientSettings timestampValidityDuration="00:15:00"/>
      </security>
      <httpsTransport
        manualAddressing="false" maxBufferPoolSize="524288"
        maxReceivedMessageSize="5242880" allowCookies="false"
        bypassProxyOnLocal="true" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
        keepAliveEnabled="true" maxBufferSize="5242880"
        realm="" transferMode="Buffered"  unsafeConnectionNtlmAuthentication="false"
        useDefaultWebProxy="true" requireClientCertificate="true"  />
    </binding>
4

1 に答える 1

1

私はこれを機能させました、難しい方法です!

    <binding name="MyBinding" openTimeout="00:00:10" sendTimeout="00:00:10" >
      <textMessageEncoding messageVersion="Soap11WSAddressing10" />
      <httpsTransport
        manualAddressing="false" maxBufferPoolSize="524288"
        maxReceivedMessageSize="5242880" allowCookies="false"
        bypassProxyOnLocal="true" decompressionEnabled="true" hostNameComparisonMode="StrongWildcard"
        keepAliveEnabled="true" maxBufferSize="5242880"
        realm="" transferMode="Buffered"  unsafeConnectionNtlmAuthentication="false"
        useDefaultWebProxy="true" requireClientCertificate="true"  />
    </binding>

したがって、基本的なバインディング(私が試した)に切り替えるのではなく、カスタムバインディングを保持することで、Soap11WSAddressing10を保持できます(つまり、すべてのSOAPヘッダーを取得できます)。

要素を削除することにより<security、基本的にトランスポートのみのセキュリティに設定します。トランスポート専用モードでは、署名は追加されません。

残念ながら、欠落しているのはタイムスタンプです。タイムスタンプを追加する構成が見つからないため、これを手動で追加する必要があります。これは、他のすべてのものを機能させることと比較して些細なことなので、正直に言って、私はそれを行うことを嬉しく思います。

于 2013-01-08T11:34:19.340 に答える