Использование подхода на основе SOAP с WSDL вместо добавления ссылки на службу
Ноль вниз голосовать
любимый
Я пытаюсь создать SOAP-запрос вместо добавления ссылки на службу, которая генерирует прокси-классы. Основная проблема, с которой я сталкиваюсь, связана с частью аутентификации. Поставщик услуг имеет 2 url-адреса: 1) Служба токенов безопасности [STS] 2) Основная служба, вызываемая для определенной функциональности.
Поставщик услуг выдал нам публичный сертификат (X. 509). Это должно быть передано, когда делается вызов STS. Затем эта служба выдает нам токен SAML, который должен быть частью запроса к основной службе.
С добавлением подхода service reference этого было легко достичь, так как нам просто нужно создать пользовательский объект привязки, где заданы все необходимые свойства, связанные с аутентификацией. Затем этот объект привязки был передан в качестве параметра вместе с адресом конечной точки объекту прокси-класса. Затем объект прокси-класса устанавливается вместе с сертификатом. Нужный API вызывается после того, как сертификат и привязки объекта устанавливается.
напр.:
ServiceClient client = new ServiceClient(binding, endpointAddress); Client.ClientCredentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.My, X509FindType.FindByIssuerName, IssuerName); client.CallServiceAPI();
При выполнении, если мы посмотрим на инструмент fiddler, у нас есть 2 запроса, отправленных по одному для STS и main service.
Я нахожу проблему в достижении этого с помощью подхода, основанного на SOAP. Любые указания или предложения по этому поводу очень ценятся.
Что я уже пробовал:
Я попытался создать запрос на основе структуры запроса fiddler. Но в итоге я получаю внутреннюю ошибку сервера 500.