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

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