2012-04-13 2 views
0

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

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 или новичок в этом отношении.

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

+0

У вас есть политика безопасности из WSDL для этой услуги? –

ответ

1

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

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

0

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

Смежные вопросы