0

Java Web サービス クライアントを C# に変換しようとしています。認証に必要なヘッダーを生成するためにカスタム SoapHeader クラスを追加しましたが、正しくフォーマットされていません。私は C# Web サービスに非常に慣れていないので、どんな助けでも大歓迎です。

ヘッダーが必要な形式は次のとおりです。

  <soapenv:Header>  
     <USER soapenv:mustUnderstand="0" xsi:type="xsd:string">xxx</USER>  
     <PASSWORD soapenv:mustUnderstand="0" xsi:type="xsd:string">yyy</PASSWORD> 
  </soapenv:Header> 

C# クライアントによって生成されるものは次のとおりです。

  <soap:Header>
     <wsa:Action></wsa:Action>
     <wsa:MessageID>urn:uuid:ecb804bb-1104-4bfc-a8f8-c5f757d428fb</wsa:MessageID>
     <wsa:ReplyTo>
        <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
     </wsa:ReplyTo>
     <wsa:To>http://localhost:8081/emsapi/services/PSXAPI/r09_00_00</wsa:To>
     <wsse:Security>
        <wsu:Timestamp wsu:Id="Timestamp-4e8c838e-230c-4fb3-99b0-74f46f3652fa">
           <wsu:Created>2013-07-19T17:26:55Z</wsu:Created>
           <wsu:Expires>2013-07-19T17:31:55Z</wsu:Expires>
        </wsu:Timestamp>
     </wsse:Security>
  </soap:Header>

それらを正しくフォーマットするには、SoapHeader クラスに何を入れる必要がありますか? 参考までに、ヘッダー クラスは次のとおりです。

public class AuthHeaders : SoapHeader {
    [System.Xml.Serialization.SoapElement("USER")]
    [System.Xml.Serialization.SoapAttribute("USER")]
    public string USER;
    [System.Xml.Serialization.SoapElement("PASSWORD")]
    public string PASSWORD;
}
4

1 に答える 1

0

最終的な解決策には、SoapExtension クラスが付属し、必要に応じて属性を変更しました。

于 2013-07-19T19:02:22.523 に答える