azure Основы DevOps c Авторизация с использованием HttpClient (FAILED) - PullRequest
2 голосов
/ 29 марта 2020

Я пытаюсь аутентифицироваться с помощью HttpClient в моей Azure организации Dev. но это всегда не удавалось.

единственный способ добиться успеха с аутентификацией - это использовать клиентскую библиотеку следующим образом:

VssConnection connection = new VssConnection(new Uri(azureDevOpsOrganizationUrl), new VssClientCredentials());

надеюсь, что кто-нибудь подскажет мне, что такое правильный способ авторизации с использованием имени пользователя и только пароль.

ОБНОВЛЕНИЕ: я тоже попробовал вот так:

        string SecurelyStoredUserName = "EmailAddressAsUserName";
        SecureString SecurelyStoredPassword = new SecureString();

        string PWD = "MyVerySecuredPassword";
        PWD.ToList().ForEach(SecurelyStoredPassword.AppendChar);

        NetworkCredential myCred = new NetworkCredential(
        SecurelyStoredUserName, SecurelyStoredPassword, azureDevOpsOrganizationUrl);


        string svcCredentials = Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(SecurelyStoredUserName + ":" + SecurelyStoredPassword));

        HttpClientHandler handler;
        handler = new HttpClientHandler() { Credentials = myCred };
        HttpClient client;
        client = new HttpClient(handler);
        client.BaseAddress = new Uri(azureDevOpsOrganizationUrl);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Add("Accept", "application/json");
        client.DefaultRequestHeaders.Add("Authorization", "Basic " + svcCredentials);

то, что я сделал, но когда я попытался сделать получение / публикацию, я получил ошибку 401 Unauthorized

1 Ответ

3 голосов
/ 29 марта 2020

Невозможно отправить сетевые учетные данные на Azure Devops. Он не принимает такой тип аутентификации. Вы можете использовать токен личного доступа или API Active Directory для получения доступа.

На самых первых страницах «Начало работы» объясняется, как использовать API-интерфейсы Azure DevOps.

Полный образец для Interactive User + Pass auth доступен здесь .

Если вы пытаетесь действовать от имени пользователя, тогда вам, возможно, придется пересмотреть свой подход.

...