2015-06-29 26 views
8

Ultimamente ho faticato con l'autenticazione in TeamCity tramite l'API. Posso accedere alle risorse direttamente nel mio browser (http://usr:[email protected]:8111/httpAuth/app/rest/...), Ma facendo ciò restituisce 401-Unauthorized al livello di programmazione.TeamCity - Impossibile eseguire l'autenticazione tramite l'API

WebRequest request = WebRequest.Create("http://user:[email protected]:8111/httpAuth/app/rest/projects"); 
     request.Method = WebRequestMethods.Http.Get; 
     try 
     { 
      request.Timeout = Timeout.Infinite; 
      WebResponse response = request.GetResponse(); //Returns 401:Unauthorized 

posso usare guestAuth (http://teamcity:8111/guestAuth/app/rest/projects) senza alcun problema, quindi non ci dovrebbe essere alcun problema con il WebRequest stessa.

Qualcuno ha un'idea?

+0

.you di inviato al client credentials.then solo sarà risposta sucesso –

+0

ho visto un esempio qui ho pensato che era sufficiente .. (http://stackoverflow.com/questions/11017686/how-to- pass-username-and-password-in-teamcity-rest-api) – frods

+0

@ ... questa richiesta di arricciatura guarda questo esempio ..praticamente per 'CreateHttpClient' https://github.com/stack72/TeamCitySharp/blob/master /src/TeamCitySharp/Connection/TeamCityCaller.cs –

risposta

6

Prova ad aggiungere le tue credenziali e poi a request.it otterrai ciò di cui hai bisogno.

var username = "abc"; 
    var password = "123"; 
    var encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password)); 
    request.Headers.Add("Authorization", "Basic " + encoded); 
+0

Grazie mille! Creata la richiesta in base ad un'altra risposta qui, ma credo che la sto usando nel contesto di wront .. – frods