Подключение к WCF-сервису, блок Security

315
30 сентября 2017, 19:33

Добрый день всем. Пытаюсь подключиться к 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 на месте, насколько я понимаю. Заранее спасибо за ответы!

READ ALSO
C# - Одинаковые данные в массиве

C# - Одинаковые данные в массиве

Допустим есть массив: string[] names = new {"иван", "катя", "максим", "катя", "катя", "иван", "лёша"} Мне нужно получить имя, которое встречается большее кол-во...

292
c# ошибка при сериализации

c# ошибка при сериализации

Собственно текст ошибки:

261
Как запустить файл через приложение?

Как запустить файл через приложение?

Каким способом можно перехватить запуск файла через приложение?

295