0

あなたが私を助けてくれることを望んでいました。残念ながら、WSE 2.0 サービスであるサードパーティの Web サービスに接続しようとしています。WCF を使用して C# .NET 4.0 でクライアントを作成しようとしています。これに関する情報を見つけるのはまったく運がありません。このサービスでは、ユーザー名とパスワードに文字列が必要です。これは彼らのサンプルがどのように見えるかです

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))

.NET 4.0 で WCF を使用してこれを達成する方法はありますか? できることなら、WSE 2.0 に頼る必要はありません。また、接続先のサービスを制御することもできません。私は決してWCFの専門家でも初心者でもありません。

前もって感謝します

4

2 に答える 2

1

理論的には、おそらく適切な拡張機能と動作を作成して、WCF に WSE 2.0 の SOAP を生成および使用させることができますが、ここでは自分で作業する必要があります。このブログ投稿に記載されているように、WSE 3.0 と WCF の間には相互運用性があります。これは、WSE 2.0 サービスを操作するための出発点として使用できます。

Visual Studio 2003 のコピーが見つかった場合は、元の WSE 2.0 コンポーネントを直接操作したほうがよいかもしれません。WSE 2.0 には下位互換性のない3 つのサービス パックがあるため、正しいサービス パックと一致することを確認する必要があることを漠然と覚えています。 . 幸運を祈ります。:)

于 2012-04-13T20:06:54.973 に答える
0

WSE2 の使用はお勧めしません。最悪の場合 (Wcf がこのサービスと相互運用できない場合) は、ユーザー名ヘッダーを自分で作成したほうがよいでしょう。それほど難しくありません。しかし、最善の方法を決定するには、完全に機能する石鹸のサンプルを公開してください (ベンダーが提供する必要があります)。

于 2012-04-13T21:23:30.693 に答える