我浏览了整个网络,找不到解决方案。我正在开发一个需要使用 PeopleSoft Web 服务的 ASP.NET 应用程序。在他们为服务应用安全性之前,它运行良好。它不是 .NET 服务,因此我无法以典型的 .NET 方式传递凭据,即 usnig System.Net.NetworkCredential。PS 开发人员告诉我,我必须在 SOAP 标头中传递凭据。我看不到任何具体的方法可以做到这一点。以下是 PeopleSoft WSDL 的片段:
<wsdl:binding name="PROCESSREQUEST_Binding" type="tns:PROCESSREQUEST_PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="PRCS_FINDREQUESTS">
<soap:operation soapAction="PRQ_FINDREQUESTS.v1" style="document" />
- <wsp:Policy wsu:Id="UsernameTokenSecurityPolicyPasswordRequired" xmlns:wsu="http://docs.oasis- open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
- <wsp:ExactlyOne>
- <wsp:All>
- <wsse:SecurityToken wsp:Usage="wsp:Required" xmlns:wsse="http://docs.oasis- open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:TokenType>wsse:UserNameToken</wsse:TokenType>
- <Claims>
<SubjectName MatchType="wsse:Exact" />
<UsePassword wsp:Usage="wsp:Required" />
</Claims>
</wsse:SecurityToken>
</wsp:All>
</wsp:ExactlyOne>
</wsp:Policy>
我将如何使用 C# 传递凭据?