WCF を使用してクライアントの Web サービスを利用しようとしています。クライアントの Web サービスは HTTPS 経由で実行され、次のバインディングで問題なく使用できます。
<bindings>
<basicHttpBinding>
<binding name="PurchaseOrderSoap" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport" />
</binding>
</basicHttpBinding>
</bindings>
ただし、Fortify 360 はセキュリティが弱すぎると訴えているため、セキュリティ チームから、Message
またはセキュリティを使用する必要があると言われました。TransportWithMessageCredential
Transport
試してみるMeesage
と、次のエラーが表示されます。
System.InvalidOperationException: BasicHttp binding requires that
BasicHttpBinding.Security.Message.ClientCredentialType be equivalent to the
BasicHttpMessageCredentialType.Certificate credential type for secure messages. Select
Transport or TransportWithMessageCredential security for UserName credentials.
そしてTransportWithMessageCredential
、次のエラーが表示されます。
System.InvalidOperationException: The username is not provided. Specify username in
ClientCredentials.
ユーザー名/パスワードを持っていないので (ブラウザで問題なく接続できます)、質問は次のとおりです。
既存の HTTPS Web サービスを使用するときに (発行者が変更を加えることなく)Message
またはを使用できますか? TransportWithMessageCredentials
その場合、構成にどのような変更を加える必要がありますか?
質問を明確にするために編集されました。