我正在尝试使用 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>
但是,我们的安全团队告诉我需要使用Message
或TransportWithMessageCredential
安全,因为 Fortify 360 抱怨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.
我没有用户名/密码(我可以在浏览器中正常连接),所以我的问题是:
我可以使用Message
或TransportWithMessageCredentials
在使用现有的 HTTPS Web 服务时(无需发布者进行任何更改)吗?如果是这样,我需要对我的配置进行哪些更改?
编辑以澄清问题。