Ich versuche, den Webdienst eines Kunden mit WCF zu konsumieren. Der Webdienst des Kunden wird über HTTPS ausgeführt, und ich kann ihn mit der folgenden Bindung problemlos konsumieren:
<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>
Unser Sicherheitsteam hat mir jedoch gesagt, ich müsse Message
ou TransportWithMessageCredential
Sicherheit, denn Fortify 360 beklagt, dass Transport
die Sicherheit ist zu schwach.
Wenn ich versuche Meesage
Ich erhalte diesen Fehler:
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.
Und mit TransportWithMessageCredential
Ich erhalte den folgenden Fehler:
System.InvalidOperationException: The username is not provided. Specify username in
ClientCredentials.
Ich habe keinen Benutzernamen und kein Passwort (ich kann mich in meinem Browser problemlos einloggen), daher meine Frage:
Kann ich die Message
ou TransportWithMessageCredentials
wenn ein bestehender HTTPS-Webdienst genutzt wird (ohne dass der Herausgeber Änderungen vornimmt)? Wenn ja, welche Änderungen muss ich an meiner Konfiguration vornehmen?
Bearbeitet, um die Frage zu klären.