0

受信ヘッダーから要素を読み取る必要があります...

WCF.InboundHeaders を使用して受信ヘッダーを文字列に割り当てています....

今私の問題は、受信ヘッダーが次のようになっていることです

インバウンドヘッダー

<headers><s:userid xmlns:s="http://www.w3.org/2003/05/soap-envelope">testuser</s:userid>

 <s:applicationid xmlns:s="http://www.w3.org/2003/05/soap-envelope">assistworkerweb</s:applicationid>

<a:Action s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">http://Request</a:Action><a:To s:mustUnderstand="1" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing">

今、私はそれからユーザーIDを抽出する必要があります..そこからユーザーIDを抽出する方法..

4

1 に答える 1

0

文字列が保存される場所や方法(WCF.InboundHeadersが入力される)については言及していませんが、XPathの単純なフラグメントを使用してUserIdを抽出します。C#ヘルパーを使用してこれを抽出している場合は、次のように実行できます(注、これはテストされていませんが、ほとんどあります)。

XmlDocument doc = new XmlDocument();
doc.Load([WCF.InboundHeaders Xml Fragment]);

// Create an XmlNamespaceManager to add 'soap-envelope' namespace
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("s", "http://www.w3.org/2003/05/soap-envelope");

// Select the UserId
XmlNode userId = doc.SelectSingleNode("/headers/s:userid", nsmgr);
Console.WriteLine(userId.InnerXml);

Xmlフラグメントを.Netオブジェクトにシリアル化し、その方法でUserIdを取得することもできます。

于 2013-03-19T13:27:20.383 に答える