我有一个启用了基本身份验证的开发站点。我可以使用以下内容获取页面以将基本身份验证添加到标题中:
$creds = "$($BASIC_AUTH_USER):$($BASIC_AUTH_PASS)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($creds))
$basicAuthValue = "Basic $encodedCreds"
$headers = @{
Authorization = $basicAuthValue
}
$login = Invoke-WebRequest $url -SessionVariable session -UseBasicParsing -Headers $headers
但我无法发布到相同的 URL:
$fields = @{ Email = $SITE_USER; Password = $SITE_PASS; }
$login = Invoke-WebRequest -Uri $url -Method POST -WebSession $session -Body $fields -UseBasicParsing -Headers $headers
我收到了 401 Unauthorized 回复。如果我在网站上禁用基本身份验证,一切正常。所以我知道这不是服务器问题。我可以使用我的浏览器发布。
编辑:所以当我在服务器上调试时,似乎基本身份验证工作正常。但是我的服务器返回一个重定向,然后导致 Invoke-Webrequest 将其解释为 401。
关于为什么这可能不起作用的任何想法?