Подключение к TFS программно с 2017 года

Оператор == всегда предназначен для сравнения ссылок на объекты, тогда как метод сравнения строк .equals () переопределяется для сравнения содержимого:

String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2); // It prints false (reference comparison)
System.out.println(s1.equals(s2)); // It prints true (content comparison)
1
задан Sinton k 17 January 2019 в 10:21
поделиться

2 ответа

Вместе со всеми комментариями к учетным данным я обнаружил, что базовая аутентификация заблокирована в некоторых репозиториях.

Я считаю, что лучше всего создать Личный токен доступа (PAT) в хранилище. Затем используйте это в своих соединениях для доступа к API.

Пример, чтобы прочитать, какие проекты находятся в коллекции репозитория tfs / devops по умолчанию:

string PAT = "Put PAT String Here";
string RepoStore = "https://url of repo here";
string responseBody = "";

using (HttpClient client = new HttpClient())
{
    client.DefaultRequestHeaders.Accept.Add(
        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
        Convert.ToBase64String(
            System.Text.ASCIIEncoding.ASCII.GetBytes(
                string.Format("{0}:{1}", "", PAT))));

    using (HttpResponseMessage response = client.GetAsync(
                RepoStore + "/_apis/projects").Result)
    {
        response.EnsureSuccessStatusCode();
        responseBody = await response.Content.ReadAsStringAsync();
    }
    Console.WriteLine(responseBody);
}

Console.ReadKey();
0
ответ дан C J 17 January 2019 в 10:21
поделиться

Это зависит от версии вашего TFS. Тем не менее, если вы пытаетесь подключиться к TFS2015 или TFS2017, это подойдет:

using Microsoft.TeamFoundation.Client;
using Microsoft.VisualStudio.Services.Common;
using System;
using System.Net;   

namespace TFSConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            NetworkCredential networkCredentials = new NetworkCredential(@"Domain\Account", @"Password");
            Microsoft.VisualStudio.Services.Common.WindowsCredential windowsCredentials = new Microsoft.VisualStudio.Services.Common.WindowsCredential(networkCredentials);
            VssCredentials basicCredentials = new VssCredentials(windowsCredentials);
            TfsTeamProjectCollection tfsColl = new TfsTeamProjectCollection(
                new Uri("http://XXX:8080/tfs/DefaultCollection"),
                basicCredentials);

            tfsColl.Authenticate(); // make sure it is authenticate
        }
    }
}

Я не могу не подчеркнуть, что с учетными данными все в порядке! Эта ошибка встречалась и у меня пару раз.

Есть и другое решение, если вышеперечисленное не работает.

  1. Закройте Visual Studio и перейдите в Панель управления
  2. Учетные записи пользователей -> Управление учетными данными (в левом столбце)
  3. Выберите «Учетные данные Windows»
  4. [114 ] Прокрутите вниз до раздела «Общие учетные данные» и найдите подключение к TFS-серверу.
  5. Разверните раскрывающийся список и нажмите «Изменить»
  6. . Введите свой сетевой пароль
  7. Перезапустите Visual Studio и повторите код
0
ответ дан foyss 17 January 2019 в 10:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: