Итак, я создал сервис, который использует базовое Auth Soap 1.2. Конфиг ниже:
<customBinding>
<binding name="MyHttpBinding">
<security authenticationMode="UserNameOverTransport" securityHeaderLayout="Strict"
allowInsecureTransport="false">
<secureConversationBootstrap />
</security>
<textMessageEncoding messageVersion="Soap12" />
<httpsTransport maxReceivedMessageSize="6553600" authenticationScheme="Basic" maxBufferSize="6553600" />
</binding>
</customBinding>
У меня есть несколько клиентов, которые его называют (WCF и Java). С клиентом WCF у меня нет никаких проблем, но с клиентом Java я получаю следующее исключение на стороне сервера:
System.ServiceModel.Security.MessageSecurityException Security
процессор не смог найти заголовок безопасности в сообщении. это
может быть потому, что сообщение является незащищенной ошибкой или потому что
обязательное несоответствие между связывающимися сторонами. Это может произойти
если служба настроена для безопасности, а клиент не использует
безопасность.
Что я не знаю, так это как обойти эту проблему.
Система должна использовать базовую аутентификацию и должна использовать Soap 1.2 (таким образом, пользовательскую привязку).
У меня нет контроля над вызывающим Java-клиентом, но я уверен, что он вызывает службу с использованием базовой аутентификации.
Есть предложения?