这几天我一直在用头撞桌子。
当我从 Active Directory 获取信息时,我必须使用 Powershell 拨打肥皂电话。
拨打电话不是问题,我打了一个没有问题的模拟服务,问题在于我打了真正的端点并且它需要一个 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))