Почему классы веб-запросов .NET перезапускают запросы без заголовков аутентификации? - PullRequest
0 голосов
/ 27 июля 2010

Я пишу тестовое приложение WPF для службы REST WCF, работающей на фабрике локальной разработки Azure с настраиваемым поставщиком базовой аутентификации.

Когда тестовый клиент выполняет вызов с использованием WebClient или HttpWebRequest, онпередает заголовок авторизации и пользовательский провайдер аутентифицирует его.Затем служба снова получает тот же запрос, но без заголовка аутентификации.Все это происходит в рамках одного вызова request.GetResponse или webClient.DownloadString.

Помогите, я схожу с ума.

Код клиента:

using (var client = new WebClient())
{
    client.Headers.Add(HttpRequestHeader.Authorization, "Basic " +
        Convert.ToBase64String(Encoding.ASCII.GetBytes(UserName + ":" + Password)));
    try
    {
        ResponseText = client.DownloadString(BaseAddress + "/" + MethodCall);
    }
    catch (WebException ex)
    {
        ResponseText = ex.Message + Environment.NewLine + Environment.NewLine + ex;
    }
}

(Эта версия устанавливает заголовок авторизации напрямую, потому что установка учетных данных с помощью WebClient, похоже, не работает вообще.)

EDIT: Fiddler показывает, что первоначальный вызов получает перенаправление 307, вероятно, из-заЛазурная ткань.Являются ли веб-классы .NET слишком глупыми для повторной отправки заголовка авторизации при перенаправлении?

1 Ответ

2 голосов
/ 27 июля 2010

И ответ таков: WebClient требует / в конце URL.(Обязательно)

...