2012-11-06 5 views
8

Sto tentando di accedere a https://visualstudio.com (precedentemente noto come https://tfs.visualstudio.com, http://www.tfspreview.com) dal mio servizio Windows scritto su .NET.Come autenticarsi in Visual Studio Team Services con la nuova autenticazione di base da un servizio Windows .Net?

Desidero utilizzare la nuova autenticazione di base ma non sono riuscito a trovare un modo per farlo.

Ho trovato molti collegamenti al post del blog Team Foundation Service updates - Aug 27 ma sta utilizzando il client Java Team Explorer Everywhere per TFS.

Esiste una nuova versione del modello di oggetti TFS .NET per supportare l'autenticazione di base?

A proposito, ho effettuato l'accesso successivamente con l'account di servizio. This answer è stato molto utile.

risposta

12

Prima di tutto, è necessario avere almeno Visual Studio 2012 Update 1 installato sul computer. Include un assembly Microsoft.TeamFoundation.Client.dll aggiornato con la classe BasicAuthCredential.

Ecco il codice per farlo, da Buck's blog post How to connect to Team Foundation Service.

using System; 
using System.Net; 
using Microsoft.TeamFoundation.Client; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      NetworkCredential netCred = new NetworkCredential(
       "[email protected]", 
       "yourbasicauthpassword"); 
      BasicAuthCredential basicCred = new BasicAuthCredential(netCred); 
      TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred); 
      tfsCred.AllowInteractive = false; 

      TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(
       new Uri("https://YourAccountName.visualstudio.com/DefaultCollection"), 
       tfsCred); 

      tpc.Authenticate(); 

      Console.WriteLine(tpc.InstanceId); 
     } 
    } 
} 
+3

Si noti che ciò richiede una connessione 'https:'. –

+1

Ho avuto problemi a far funzionare questo - Apparentemente quando si utilizzano le credenziali dell'account Microsoft i valori forniti non funzioneranno come previsto. Per autenticare contro VSO 2015 ho dovuto abilitare "credenziali alternative" in modo che potessi cambiare il nome utente in un formato non di indirizzo email. Dopo che questo codice ha funzionato bene. – Volkirith

+0

d'accordo con Volkirith. questo non funziona con VS2015 ora è necessario configurare le credenziali alternative prima di poterlo effettivamente eseguire. – afr0