Я разрабатываю службу WCF, которая будет использоваться приложением Java (через DataPower), и я использую следующую привязку.
<customBinding>
<binding name="InteropCertificateBindingG">
<transactionFlow />
<security
authenticationMode="MutualCertificate"
defaultAlgorithmSuite="TripleDesRsa15"
messageSecurityVersion="WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10"
includeTimestamp ="true"
messageProtectionOrder="SignBeforeEncrypt"
securityHeaderLayout="Strict"/>
<textMessageEncoding />
<httpsTransport />
</binding>
</customBinding>
Если мы только подписываем, а получаем только подписанные, сообщение все работает нормально.
Но когда мы определяем контракт для шифрования и подписи, клиент отправляет сообщение в зашифрованном виде и подписывается I, служба wcf принимает сообщение, но клиент получает ошибку, когда он пытаетсяпрочитайте ответ
ошибка такова:
Транзакция прервана на шаге 2. Значения хеша не совпадают
Как узнать, какие тегизашифрованы / подписаны?
Должен ли я использовать MutualCertificate или MutualCertificateDuplex authenticationMode, поскольку я использую AsymmetricSecurityBindingElement (определяется версией сообщения wssecurity10)?
Есть идеи, как мы можем решить это?