HttpClient не отправляет базовую аутентификацию после перенаправленияC#

Место общения программистов C#
Ответить
Anonymous
 HttpClient не отправляет базовую аутентификацию после перенаправления

Сообщение Anonymous »

Мой код выполняет HTTP GET для URL-адреса веб-службы, требующего базовой аутентификации.

Я реализовал это с помощью HttpClient с HttpClientHandler, у которого определено свойство Credentials.

Все это работает отлично. За исключением одного из моих случаев использования, когда я выполняю аутентифицированный GET для:

Код: Выделить всё

http://somedomain.com
, который перенаправляет на http://www.somedomain.com.

Похоже, что HttpClientHandler очищает заголовок аутентификации во время перенаправления. Как я могу это предотвратить? Я хочу, чтобы учетные данные отправлялись независимо от перенаправлений.

Это мой код:

Код: Выделить всё

// prepare the request
var request = new HttpRequestMessage(method, url);
using (var handler = new HttpClientHandler { Credentials = new NetworkCredential(username, password) , PreAuthenticate = true })
using (var client = new HttpClient(handler))
{
// send the request
var response = await client.SendAsync(request);
Примечание: это связанный вопрос:
Поддержание базовой аутентификации HTTP при перенаправлении
Но поскольку я использую разные классы для выполнения запроса, может быть лучшее и более конкретное решение

Подробнее здесь: https://stackoverflow.com/questions/194 ... r-redirect
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»