Авторизация в API Azure Devops Rest - PullRequest
1 голос
/ 29 июня 2019

У меня есть API Azure Devops для статистики, но я не могу пройти проверку подлинности в c # при отправке заголовка.

Я использую веб-запросы.

после кучки тестирования я пошел и использовал почтальоначтобы проверить это, и я мог войти в систему, используя имя пользователя и пароль, так что я установил этот заголовок авторизации, который работает на 100%, так как я действительно получил информацию с сервера.куча кода типа HTML, что я думаю, является частью веб-сайта аутентификации

1 Ответ

0 голосов
/ 29 июня 2019

Тот факт, что вы получаете кучу HTML обратно, говорит о том, что вы неправильно формируете базовый заголовок auth или что имя пользователя, которое вы предоставляете, не распознается. Из вашего примера кода неясно, что это такое, но если бы вы указывали правильно сформированный заголовок аутентификации с неверными учетными данными, вы бы получили ответ 401 Unauthorized, который класс HttpWebRequest выбросил бы как исключение.

Две вещи, которые нужно проверить:

  • Убедитесь, что вы правильно формируете заголовок auth (это почти наверняка, из вашего вопроса не ясно как вы скопировали его из почтальона или попытались сгенерировать его в C #)

  • Убедитесь, что ваши учетные данные действительны.

Я настроил ваш фрагмент кода так, чтобы он правильно формировал заголовок:

var base64Creds = Convert.ToBase64String(Encoding.ASCII.GetBytes("username:password"));

var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = "GET";

httpWebRequest.Headers.Add($"Authorization: Basic {base64Creds}");

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    var result = streamReader.ReadToEnd();

    Console.WriteLine(result);
}

Если приведенный выше фрагмент кода не работает с вашим основным именем пользователя и паролем, в качестве крайней меры вы можете попробовать установить альтернативные учетные данные: (https://dev.azure.com/{organisation}/_usersSettings/altcreds) с известной комбинацией имени пользователя и пароля и посмотрите, работает ли это для вас.

...