2012-03-21 36 views
0

私はSOAPメッセージを含むXMLHTTPRequestを持っています。
メッセージを識別し、C#Webサービスで消費されるguidを追加したいとします。
GUIDの目標は、特定のユーザーを識別し、サーバー上の認証目的のすべてのユーザー要求をエスコートすることになっています。このGUIDはユーザーログイン時に作成され、サーバーに保存されます。私はどのヘッダーを使用しますか? XMLHTTPRequestヘッダーまたはSOAPヘッダー

は、私はこのようなのXMLHttpRequestヘッダを使用する必要があります。

setRequestHeader("GUID", this.requestGUID); 

またはSOAPヘッダー

<?xml version="1.0"?<?xml version="1.0"?> 
<soap:Envelope 
xmlns:soap="http://www.w3.org/2001/12/soap-envelope" 
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"> 

<soap:Header> 
    <GUID>someGUID...</GUID> 
</soap:Header> 
... 
... 
</soap:Envelope> 

を使用し、それらのいずれかのいずれかの利点がありますか?

ありがとうございます!

答えて

3

あなたの質問に対する答えは、ほとんど味の問題だと思います。私は個人的にはsetRequestHeaderメソッドを使用する方が好きです。メッセージのスペースが少なくて済み、SOAPに依存しません(私は個人的にJSONをSOAPとしてもっと好きです)。

もし私がGUID値の性質についてもっと知っていれば、私はおそらく私の考えを変えるでしょう。 GUIDがデータのプロパティである場合、メッセージ本体がより良い選択になります。あなたが質問に投稿したときに私はsetRequestHeaderの選択肢にとどまって情報を持っていません。

+0

GUIDの目標は、特定のユーザーを識別し、サーバー上での認証目的のすべてのユーザー要求をエスコートすることです。このGUIDはユーザーログイン時に作成され、サーバーに保存されます。 –

+0

@DorCohen:それはHTTPヘッダーとしてさらに聞こえる。 HTTPの「Authorization」ヘッダーの設定を思い出させます(ヘッダーにはカスタム許可情報も含まれます)。 – Oleg

+0

そして、あなたはリンカロの答えについて何を言っていますか?それはあなたの答えよりも逆です –

0

コードにSOAPメッセージがある場合は、SOAPヘッダーが必要です。 SOAPメッセージを他のヘッダーと混在させると、SOAPスタックの一部の実装が壊れる可能性があります。 .NETでの実装は特に厳密です。

XMLHTTPRequestヘッダーは、背後にはさまざまな原則を持つ安心なサービスに使用されます。

関連する問題