2012-01-04 9 views
0

を解析:要求を認証するためにWCF Webサービスは、私は次のことを受け入れWCF Webサービスの実行(REST)持っているヘッダの値をチェックし、身体

[OperationContract] 
[WebInvoke(Method = "POST", UriTemplate = "/StatusUpdate")] 
string SMSUpdateStatus(Stream input); 

[OperationContract] 
[WebInvoke(Method = "POST", UriTemplate = "/ReceiveSMS")] 
string SMSReceived(Stream input); 

を、私は渡された各値を結合する必要がありますPOST(ContentType:application/x-www-form-urlencoded)で特定のキーを使用してハッシュし、特定のヘッダー値と比較します。

私はこのようなものを使用することにより、検証せずに、この作業の罰金を持っていた:

StreamReader sr = new StreamReader(input); 
string s = sr.ReadToEnd(); 
sr.Dispose(); 
NameValueCollection qs = HttpUtility.ParseQueryString(s)); 

string Val1= qs["val_a"]; 
string Val2= qs["val_b"]; 
私は(私は私の比較のために行うために必要がある)ヘッダの値を引き出す方法を見つけ出すように見えることはできません

または私のNameValueCollectionを分割すると、私のペイロード全体を単一のキーに保持するように見えます。

答えて

1

おそらくしよう:

OperationContext.Current.IncomingMessageHeaders 

は、サービスのだろうか?私はこれをテストしていませんが、あなたの結果を聞くことに興味があります