2017-10-06 16 views
0

次のSOAPヘッダーをWCFサービス呼び出しに渡す必要があります。生のXMLをSOAPヘッダーとしてWCFプロキシクラスに渡すにはどうすればよいですか?

<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
    <wsu:Timestamp wsu:Id="TS-3DCA13685AB558766615063665309446"> 
     <wsu:Created>2017-09-25T19:08:50.943Z</wsu:Created> 
     <wsu:Expires>2017-09-25T20:48:50.943Z</wsu:Expires> 
    </wsu:Timestamp> 
    <wsse:UsernameToken wsu:Id="UsernameToken-3DCA13685AB558766615063665252595"> 
     <wsse:Username>prdIDXXXX</wsse:Username> 
     <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXXX</wsse:Password> 
     <wsu:Created>2017-09-25T19:08:45.259Z</wsu:Created> 
    </wsse:UsernameToken> 
    </wsse:Security> 

問題は、HttpWebRequestオブジェクトを作成することによって、stackoverflowやその他のフォーラムのソリューションのほとんどがこれを行うことです。

例:calling WCF services using SOAP

はしかし、私の場合、私はすでにWSDLから生成されたサービスプロキシクラスを持っています。プロキシクラスはすでにシグネチャコールシグネチャを作成しています。

myResponseObject = ServiceProxy.MyServiceMethod(myRequestObject1, myRequestObject2); 

サービスコールで自分のSoapヘッダーを「挿入」するにはどうすればよいですか?

答えて

0

WCFサービスのSOAPを作成または変更するには、MessageContractを使用する必要があります。これは、DataContractではSOAPメッセージを多く制御できないためです。これにより あなたは下のリンク

http://csharp-video-tutorials.blogspot.in/2013/11/part-10-message-contract-in-wcf_28.html

を必要とリクエストを渡すとresponse.ReferによってSOAPヘッダ、ボディを変更することができます
関連する問題