Добрый день всем. Пытаюсь подключиться к WCF-сервису, используется стандарт WS-Security. Для подписи запросов используется сертификат:
<clientCredentials>
<clientCertificate x509FindType="FindBySubjectName"
storeLocation="CurrentUser"
storeName="My"
findValue="Тестовый НБКИ - 2016-07"/>
<serviceCertificate>
<authentication certificateValidationMode="None" />
</serviceCertificate>
</clientCredentials>
Вот сама точка подключения:
<endpoint address="http://localhost:62361/MisModule.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService" contract="moduleService.IService"
name="BasicHttpBinding_IService" />
И используемый binding:
<wsHttpBinding>
<binding name="newBinding" maxReceivedMessageSize="2147483647"
messageEncoding="Text">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="Certificate" />
</security>
</binding>
</wsHttpBinding>
В блок Security докидывается необходимое:
ipsWorkMisService.misInterfaceClient ms = new misInterfaceClient("ipsWorkEndPoint");
if (security != null)
{
X509SecurityTokenParameters tokenParameters = new X509SecurityTokenParameters();
tokenParameters.InclusionMode = SecurityTokenInclusionMode.AlwaysToRecipient;
tokenParameters.RequireDerivedKeys = false;
security.EndpointSupportingTokenParameters.SignedEncrypted.Add(tokenParameters);
security.EndpointSupportingTokenParameters.SignedEncrypted.Add(new UserNameSecurityTokenParameters());
}
ms.Endpoint.Binding = new CustomBinding(elements.ToArray());
Но при попытке подключения сервер выдаёт ошибку "Проверка блока security: не найден элемент header\TransportHeader". Просьба подсказать: в чем может быть дело? Элемент header на месте, насколько я понимаю. Заранее спасибо за ответы!
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости