Механизм OAuth используется против VSO api во время написания этого, как вы, казалось бы, идентифицировали. official docs for VSO OAuth tokens here.
Для на прут однако, требуется следующее:
Через яваскрипт клиента (обратите внимание, я использую JQuery для запроса Ajax здесь)
Поскольку альтернативных кредитки или маркер на основе аутентификации ISN доступный на предварительном уровне для соответствия текущей реализации vso; Вы можете рассмотреть следующий подход: если у вас есть разрешения администратора на уровне приложений TFS, вы можете настроить базовую аутентификацию для приложения tfs в IIS, а установить домен по умолчанию.
И затем вызвать следующим образом:
var self = this;
self.tasksURI = 'https://<SERVER>/tfs/<COLLECTION>/<PROJECT>/_apis/build/builds?api-version=2.0';
self.username = "<USERNAME>"; //basic username so no domain here.
self.password = "<PASSWORD>";
self.ajax = function (uri, method, data) {
var request = {
url: uri,
type: method,
contentType: "application/json",
accepts: "application/json",
cache: false,
dataType: 'json',
data: JSON.stringify(data),
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa(self.username + ":" + self.password));
},
error: function (jqXHR) {
console.log("ajax error " + jqXHR.status);
}
};
return $.ajax(request);
}
self.ajax(self.tasksURI, 'GET').done(function (data) {
alert(data);
});
ВАЖНО! : Если вы включите базовый auth, вы действительно должны настроить свой сайт на использование https, или ваши учетные данные будут отправляться в виде открытого текста (как указано в предупреждении - вверху вверху справа вверху).
Через клиента .NET
В на прем (в настоящее время rtm'd: 2015 обновление 1) API-интерфейс, как правило, закрытого типа/отгорожена NTLM, то есть запрос заранее рейс сделанный, 401, возвращенный с сервера, чтобы запросить авторизацию, в этом случае, задав запрос Учетные данные, как это описано ниже, позволяет запрашивать авторизацию на сервере после получения запроса на предварительную проверку. Для размещения вызова вы можете сделать это:
request.Credentials = new NetworkCredential(this.UserName, this.Password);
//you may want to specify a domain too
Если вы включили основную авторизацию для TFS на прете можно попытаться аутентичности следующим образом, эта модель соответствует механизму, используемому при вызове вса после включения альтернативных учетных данных в ui:
request.Headers[HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.UTF8.GetBytes(this.UserName + ":" + this.Password));
Примечание: в некотором коде я модифицировал несколько недель назад; необходима поддержка как VSO, так и on-prem, поэтому я использовал два шаблона выше, чтобы разобраться с конкретным сценарием.
С благодарностью @Elmar за ваши ответы здесь. Я пишу больше java-скрипта, поэтому я пытаюсь выяснить, как создать токен доступа для личного доступа вместо myPatToken в заголовке запроса «Авторизация», как упоминалось здесь? 'headers: { 'Авторизация': 'Basic' + btoa (" "+": "+ myPatToken) }' – vikkee
@vikkee см. измененный ответ. Я предоставил базовую информацию об аутентификации и фрагмент javascript. что касается токена, я сам бы хотел его на премьере. – Elmar
Большое спасибо за ваш подробный синтаксис javascript, у меня нет разрешения или влияния на администратора TFS у меня, поэтому мне нужно сначала выяснить, как это сделать. Возможно ли узнать, что все типы аутентификации уже включены администратором? – vikkee