2012-06-09 3 views
0

У меня есть служба, отличная от WCF, с которой мне нужно общаться. У меня WSDL службы, и она использует WS-Security 1.0 с политикой UsernameToken.Лучший способ связи с не-WCF-сервисом

Пример заголовка:

<S11:Envelope xmlns:S11="..." xmlns:wsse="..."> 
<S11:Header> 
... 
<wsse:Security> 
<wsse:UsernameToken> 
<wsse:Username>username</wsse:Username> 
<wsse:Password>password</wsse:Password> 
</wsse:UsernameToken> 
</wsse:Security> 
... 
</S11:Header> 
... 
</S11:Envelope> 

Каков наилучший способ общения с этим сервисом?

Если я использую WCF, чтобы заголовок выглядел так, как мне нужно для UsernameToken, это будет проблемой из того, что я знаю, не так ли? Как я могу это сделать?

С другой стороны, я могу сделать прокси-сервер, не являющийся WCF, даже несмотря на то, что он устарел.

Каков наилучший способ?

ответ

1

, если служба использует SSL, то вы можете иметь ваш ФОС конфигурации, как это:

<customBinding> 
    <binding name="NewBinding0"> 
    <textMessageEncoding messageVersion="Soap11" /> 
    <security authenticationMode="UserNameOverTransport"> 
     <secureConversationBootstrap /> 
    </security> 
    <httpTransport /> 
    </binding> 
</customBinding> 

, если служба не использует SSL, то вы должны использовать ClearUsernameBinding

+0

И используя не-ФОС прокси? Это плохая идея? – seth

+0

в вашем случае это также действительная идея. если тело xml очень просто, вы можете уйти без сериализации вообще, просто получите шаблон запроса и нажмите на него заголовки имени пользователя. если вам нужна сериализация, я рекомендую использовать wcf, а затем вручную поддерживать сериализацию. но даже если вы используете wcf, вы не можете сконфигурировать его для обеспечения какой-либо безопасности и самостоятельно нажимать заголовок имени пользователя через специальный инспектор сообщений. –

+0

В итоге я использовал прокси-сервер wcf и wse 3.0. Спасибо за вашу помощь, я отметил ваш ответ как правильный. – seth

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