2011-07-08 12 views

答えて

4

SOAPは、各メッセージ(要求または応答)は2つの部分から構成されているプロトコルである

<s:Envelope xmlns:s='the namespace for the soap version'> 
    <s:Header> 
    <!-- SOAP headers will come here --> 
    </s:Header> 
    <s:Body> 
    <!-- SOAP body members will come here --> 
    </s:Body> 
</s:Envelope> 

普段wouldn WCFサービスで[MessageContract](およびMessageHeaderまたはMessageBodyMember)を使用しないでください。特定の形式のデータを必要とするサードパーティと実際に相互運用する必要がある場合のみです。

1

私はメッセージの内容とは独立して何かを入れたいときは、メッセージのヘッダーに入れます。 また、他の当事者があなたのメッセージから何かを読むことを望むのであれば、それはヘッダーに入れなければなりません。 ヘッダボディエンベロープ内側:

1

メッセージデータ(MessageBodyMember)とメッセージメタデータ(MessageHeader)の違いと考えることができます。アドレス指定、セキュリティ、信頼性の高いメッセージングなどを扱うWCFが提供する標準化されたヘッダーが豊富に用意されています。デフォルトのWCF実装では、SOAPにのみ関連しています。

複雑なメッセージングアーキテクチャでは、メタデータを読んで何らかの処理とメッセージルーティング(メタデータを追加することさえできます)に使用する仲介者がいるかもしれませんが、メッセージ本文(データ)を決して妨害してはいけません。セキュリティの場合、メッセージ本文や一部のメタデータ(ヘッダー)を読み取ることさえできないことがあります。

WCFの場合、各メッセージヘッダーとメッセージ本文全体で異なるセキュリティ要件(なし、署名済み、署名済みおよび暗号化済み)を設定できます(WCFは異なる身体部分に対する個別のセキュリティ要件をサポートしていません)。また、ボディメンバーやヘッダーの使用に関するいくつかの決定につながる可能性があります。

たとえば、カスタム認証を行うか、各メッセージのクライアント情報を転送する場合は、カスタムヘッダーを作成することになりますが、操作に関連する実際のデータペイロードはメッセージ本文の一部になります。

関連する問題