为什么Invoke-RestMethod不使用UseDefaultCredential开关发送凭据?

时间:2016-01-07 10:20:44

标签: powershell-v3.0

我使用PowerShell Invoke-RestMethod并希望通过当前登录用户的凭据发送。我正在使用-UseDefaultCredential开关:

Invoke-RestMethod -Uri $serverUrl -UseDefaultCredential -ContentType "application/xml" -Body '<tags count="1"><tag name="testTag" /></tags>' -Method Put -Verbose

但我一直收到401未经授权的回复。

当我创建一个PSCredentials对象并通过它时,它可以正常工作。

$creds = Get-Credential -Credential 'someusername'
Invoke-RestMethod -Uri $serverUrl -Credential $creds -ContentType "application/xml" -Body '<tags count="1"><tag name="testTag" /></tags>' -Method Put -Verbose

查看Fiddler我可以看到两个用法都获得了初始值401但-Credential选项会发送一个带有Authorization标题的后续请求。

为什么-UseDefaultCredential没有工作?我还可以通过什么来研究这个问题?

作为参考,这是向TeamCity REST API发送请求。

1 个答案:

答案 0 :(得分:0)

某些Web服务器在POST之前需要GET。 我认为它可能与PUT相同,你可以尝试:

imageVarName.src = '';
imageVarName.onload = null;
imageVarName.onerror = null;