У меня есть сайт разработки с включенной базовой аутентификацией. Я могу получить страницу, используя следующее, чтобы добавить базовую аутентификацию в заголовки:
$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. Все работает нормально, если я отключу базовую авторизацию на сайте. Так что я знаю, что это не проблема сервера. Я могу POST с помощью моего браузера.
Изменить: кажется, что базовая аутентификация работает правильно, когда я отлаживаю сервер. Но мой сервер возвращает перенаправление, из-за чего Invoke-Webrequest интерпретирует это как ошибку 401.
Любая идея о том, почему это может не работать?