Использование.NET 4.0 WCF для подключения к WSE 2.0 WebService с помощью user/pass

Я надеялся, что ты поможешь мне. Я пытаюсь подключиться к стороннему веб-сервису, который, к сожалению, является сервисом WSE 2.0. Я пытаюсь написать клиент в C# .NET 4.0 с помощью WCF. Мне не повезло найти какую-либо информацию по этому вопросу. Сервису требуется строка для имени пользователя и пароля. Вот как выглядит их образец

Using webServiceObject As Microsoft.Web.Services2.WebServicesClientProtocol = New WSOData.Webservices.TransactionWebService()
https = ConcatenateWebserviceAddress(request.Server.Https, request.Service.Extension)
epr = New EndpointReference(New Uri(https))
webServiceObject.Destination = epr

Dim WebserviceContext As SoapContext = webServiceObject.RequestSoapContext

''''' Set the security settings
 ' Set the timeout value for how long issued SecurityContextToken security tokens are valid
WebserviceContext.Security.Timestamp.TtlInSeconds = -1

'Instantiate a new UsernameToken object.
Dim userNameToken As New UsernameToken(userName, password, PasswordOption.SendHashed)

'Add the token to the SoapContext.
WebserviceContext.Security.Tokens.Add(userNameToken)

'Generate a signature using the username token, and add the signature to the SoapContext.
 WebserviceContext.Security.Elements.Clear()
 WebserviceContext.Security.Elements.Add(New MessageSignature(userNameToken))

Есть ли способ сделать это с помощью WCF в.NET 4.0? Я действительно не хочу прибегать к использованию WSE 2.0, если смогу помочь. У меня также нет контроля над сервисом, к которому мы подключаемся. Буду признателен за любую помощь, я ни в коем случае не эксперт или новичок WCF в этом отношении.

заранее спасибо

2 ответа

Решение

Теоретически, вы, вероятно, можете создать правильные расширения и поведения, чтобы WCF мог производить и потреблять мыло WSE 2.0, но здесь вы сами по себе. Существует некоторое взаимодействие между WSE 3.0 и WCF, как описано в этом сообщении в блоге. Вы можете использовать его в качестве отправной точки для работы со службой WSE 2.0.

Возможно, вам лучше работать непосредственно с исходными компонентами WSE 2.0, если вы сможете найти копию Visual Studio 2003. Я смутно помню, что в WSE 2.0 имеется 3 пакета обновления, которые не были обратно совместимы, поэтому вам следует убедиться, что вы используете правильный пакет обновления., Удачи и наилучших пожеланий!:)

Я не рекомендую вам использовать WSE2. В худшем случае - когда Wcf не может взаимодействовать с этим сервисом - вам лучше создать заголовок имени пользователя самостоятельно, это не так уж сложно. Но для определения наилучшего способа, пожалуйста, опубликуйте полный образец рабочего мыла (поставщик должен его предоставить)

Другие вопросы по тегам