1

3 つの SOAP 1.1 WSDL エンドポイントでリッスンするサードパーティの Java Web サービスがあります。エンドポイントの 1 つは、セッションを開始していくつかの高レベルのタスクを実行するために使用され、他のエンドポイントは、その初期認証を再利用するサブジェクト固有のタスク用です。

サービスと対話する C# WCF アプリケーションを作成しています。3 つのクライアント オブジェクト間でセッション Cookie を共有したいと考えています。

この Cookie を共有する VS2010 の「ベスト プラクティス」の方法は何ですか?

この記事がまだ最良の回答である場合は、それを使用できますが、オンラインで見つけられない単純化が .NET 4 で導入された場合は特に、追加のフィードバックをいただければ幸いです。 http://megakenp.wordpress.com/2009/02/06/managing-shared-cookies-in-wcf/

最初のクライアントを簡単に作成してセッションを保持できます (新しい BasicHttpBinding myBinding; myBinding.AllowCookies = true) が、Connect 応答から Cookie を保存して 2​​ つの補助クライアントに再利用するエレガントな方法を見つけることができませんでした。

どんな洞察も高く評価されます。

私は CookieContainer を認識しており、Add Service Reference の代わりに Add Web Reference を使用していることに注意してください。そのメソッドは、私が読んだほとんどの投稿で「レガシー」とラベル付けされています.SOAP 1.1を使用する場合は、最新の状態を維持するか、可能な限り最新の状態を維持したいと思います.

4

1 に答える 1

0

言及された記事はまだ有効です。プロトコル固有のデータを取得するには、OperationContextScopeを使用してメッセージプロパティにアクセスする必要があります。この複雑さは、WCFアーキテクチャがプロトコルに依存しないのに対し、ASMXアーキテクチャはHTTPプロトコルに依存するという事実に基づいています。

ASMX(WebReference)はレガシーテクノロジですが、.NET Frameworkにはまだ存在しているため、高度なWS- *標準がなければ基本的なSOAPメッセージングが必要ないことがわかっている場合は、それを使用して作成できます。人生は少しシンプルです。さらに何かが必要になった場合でも、コードをリファクタリングし、前述のコードでWCFを使用してCookieを操作できます。

于 2011-08-21T11:09:15.510 に答える