Как работать с SOAP WSE 2.0 через SSL?
От: farel703  
Дата: 29.08.10 09:57
Оценка:
Здравствуйте, помогите разобраться с взаимодействием с Web-севисом по протоколу SOAP на .net.

Есть сервис, который поддерживает протокол SOAP+WSE 2.0
Доступ к этому сервису осуществляется по защищенному каналу SSL.
Wsld c описанием сервиса есть.

С .net опыт крайне скудный, поэтому не кидайтесь гнилыми помидорами, в поиск прошу не отправлять, т.к. только что от него, так без каких-то пояснений и конкрентных ссылок все равно ничего не пойму .
Как пытаюсь решать задачу:
1. Сгенерировал модуль при помощи утилиты wsdl.exe
2. Поменял родительский класс сервиса с System.Web.Services.Protocols.SoapHttpClientProtocol на Microsoft.Web.Services2.WebServicesClientProtocol
3. Для эмуляции сервиса и отладки использую SoapUI. Сделал на основе описания сервиса проект, запустил тестовый сервис (пока без SSL, о нем вопросы ниже).

Дальше начал смотреть что и как меняется в запросе если настраивать RequestSoapContext.Security.

Если запустить без настройки – обычный SOAP запрос
Если добавть .Security.Tokens.Add в запросе появляется <wsse:BinarySecurityToken>
Если добавлять .Security.Elements.Add(new MessageSignature(…)), то добавляется элемент <Signature> c подписями различных элементов запроса.э

Как только я добавляю svc.RequestSoapContext.Security.Elements.Add(new EncryptedData(…));
Ловлю Ошибку «Клиент обнаружил тип содержимого ответа "text/html; charset=iso-8859-1", но ожидается тип "text/xml".»

Не удивлюсь, что это проблема моего способа эмуляции Сервиса.
Отсюдя Вопрос 1: Можно как-то еще узнать, какие запросы посылает моя програмка, чтобы посмотреть, что меняется при моих манипуляциях?

Вопрос 2.
Как я понимаю Security.Elements.Add() в качестве аргумента должен получать класс реализующий интерфейс ISecurityElement?
Можно как-то быстро в MSDN найти все классы, которые реалиуют выбранный интерфейс?
это нужно, чтобы я мог поглядеть все возможности по настройке RequestSoapContext, и соотнести со стандартом WS-Security (чуть почитал вот это http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf))


Последний мой вопрос.
Как настраивать сообщение по защищенному SSL каналу?

По SSL работал только на delphi,
примерно так: есть специальный класс, в котором указать разного рода сертификаты, при помощи этого класса настраивался класс для работы по протоколу http. При помощи последнего посылаются post запросы.
Правда в этом случае приходется рисовать Soap самому , думаю с поддежкой WS-security – это крайне неприятно.
soap wse ssl
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.