2013-05-29 50 views
1

我已經瀏覽了所有網頁,找不到解決方案。我正在開發一個需要使用PeopleSoft Web服務的ASP.NET應用程序。直到他們將安全性應用到服務中,它才能正常工作。這不是一個.NET服務,所以我無法以典型的.NET方式傳遞憑證,例如System.Net.NetworkCredential。 PS開發人員告訴我必須在SOAP頭中傳遞證書。我沒有看到在任何地方做這件事的具體方式。以下是PeopleSoft WSDL的代碼片段:使用SOAP標頭將證書從ASP.NET傳遞到Peoplesoft Web服務

<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#傳遞憑據?

回答

1

這裏的肥皂頭測試具有使用JMeter激活帳號安全我的網絡服務,當我使用:

<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <wsse:Security xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustUnderstand="1"> 
    <wsse:UsernameToken> 
     <wsse:Username>myUserName</wsse:Username> 
     <wsse:Password>myPassWord</wsse:Password> 
    </wsse:UsernameToken> 
    </wsse:Security> 
</soapenv:Header> 

它應該做的工作在C#

相關問題