Моя проблема заключается в следующем.Я получил WSDL для реализации в моем приложении ASP.NET .NET 4.7.1, чтобы другая компания могла вызвать операцию из того WSDL, который мы внедряем.Для них требуется несколько специальных настроек службы WCF.
- SOAP 1.1
- WS-Security 1.0
- WS-Addressing 1.0 (2005-08)
- HTTPS (с сертификатами x509)
- Они требуют, чтобы мы установили определенный сертификат и чтобы мы могли проверить его сертификат у себя, и в свою очередь они также будут проверять наш, поскольку у них есть наш открытый ключ.Я считаю, что я должен использовать
Custom Binding -> Security -> MutualCertificate
для этого.Я указал службу и сертификат клиента, который следует использовать.
(Обратите внимание, что реализация WSDL не требует WCF, они говорят, что потребители могут свободно внедрять ее на любом языке. Я решил использоватьWCF и у них есть немного документации об этом, поэтому я думаю, что это должно быть поддержано.)
Когда я импортирую их WSDL непосредственно в пользовательский интерфейс SOAP, он говорит, что использует SOAP 1.1.Пространство имен SOAP 1.1 видно в WSDL.
Когда я импортирую WSDL моей службы (который, в свою очередь, реализует интерфейс, сгенерированный их WSDL), он использует SOAP 1.2.Это несоответствие и очень раздражает.
Я нашел этот пост: https://stackoverflow.com/a/22255554/3013479, и я попытался удалить HttpSoap12
и добавить HttpSoap
.Я установил MessageVersion
на Soap11WSAddressing10
, поэтому он должен использовать SOAP1.1 .. Но он не работает.
Когда я использую BasicHTTPBinding
без какой-либо настройки для этой привязки, он использует SOAP 1.1
Это моя привязка:
<customBinding>
<binding>
<textMessageEncoding writeEncoding="utf-8" messageVersion="Soap11WSAddressing10" />
<security
authenticationMode="MutualCertificate"
enableUnsecuredResponse="false"
messageProtectionOrder="EncryptBeforeSign"
includeTimestamp="true"
defaultAlgorithmSuite="TripleDesRsa15"
allowSerializedSigningTokenOnReply="false"
messageSecurityVersion="WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10"/>
<httpsTransport requireClientCertificate="true"/>
</binding>
</customBinding>
Я считаю, что мне нужна настраиваемая привязка, потому что в одном из своих документов они упоминают некоторые свойства из настраиваемой привязки.Я не уверен, хотя!Кроме того, эта привязка генерирует AssymetricBinding
, и я полагаю, что никакая другая привязка по умолчанию не делает это.
У кого-нибудь есть какие-либо советы?Ребята, вам нужны знания WSDL?Теоретически я не могу / не могу настроить WSDL, потому что тогда, возможно, служба больше не сможет подключиться к нам.Если мне нужно настроить WSDL, пожалуйста, скажите мне, почему я могу сообщить об этом в компанию.