在powershell中设置soap WSSE标头

时间:2017-03-01 11:28:49

标签: powershell soap wsse

我已经在桌子上撞了好几天了。

我必须使用Powershell进行soap调用,因为我从Active Directory获取信息。

拨打电话不是问题,我点击模拟服务没有问题,问题出在我点击真正的端点并且它需要WSSE安全标头...

我正在使用

  $wsproxy = New-WebServiceProxy -Uri $wsdl 

我找不到设置标题的方法我已尝试单独设置凭据但它什么都不做

 $wsproxy.Credentials.Username = "Username"  
 $wsproxy.Credentials.Password = "password"

他们希望格式为

<soapenv:Header>
  <wsse:Security xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:wsse="http://docs.oasisopen.xmlns:wsu="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
     soapenv:mustUnderstand="0">
  <wsse:UsernameToken>
    <wsse:Username>[user@domain.com]</wsse:Username>
    <wsse:Password>[password]</wsse:Password>
  </wsse:UsernameToken>
 </wsse:Security>
</soapenv:Header>

也试过

$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

$wsproxy.Credentials = [System.Net.NetworkCredential]::($username, (ConvertTo-SecureString $password -AsPlainText -force))

0 个答案:

没有答案