2012-11-06 15 views
8

Ich versuche, https://visualstudio.com (früher bekannt als https://tfs.visualstudio.com, http://www.tfspreview.com) von meinem Windows-Dienst auf .NET geschrieben zu schreiben.Wie authentifizieren sich Visual Studio Team Services mit der neuen Standardauthentifizierung von einem .Net Windows-Dienst?

Ich möchte die neue grundlegende Authentifizierung verwenden, aber ich konnte keinen Weg finden, es zu tun.

Ich fand viele Links zum Blogpost Team Foundation Service updates - Aug 27, aber es verwendet den Team Explorer Everywhere Java-Client für TFS.

Gibt es eine neue Version des TFS .NET Object Model zur Unterstützung der Standardauthentifizierung?

Übrigens habe ich mich sukzessive mit dem Dienstkonto angemeldet. This answer war sehr nützlich.

Antwort

12

Zuerst müssen Sie mindestens Visual Studio 2012 Update 1 auf Ihrem Computer installiert haben. Es enthält eine aktualisierte Microsoft.TeamFoundation.Client.dll Baugruppe mit der BasicAuthCredential Klasse.

Hier ist der Code, um es zu tun, von 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

Beachten Sie, dass dies eine 'https:' Verbindung erfordert. –

+1

Ich habe Probleme bekommen, dies zum Laufen zu bringen - Anscheinend, wenn Sie Ihre Microsoft Kontoanmeldeinformationen verwenden, funktionieren die gelieferten Werte nicht wie erwartet. Um mich gegen VSO 2015 zu authentifizieren, musste ich "alternative Anmeldeinformationen" aktivieren, damit ich den Benutzernamen in ein Nicht-E-Mail-Adressformat ändern konnte. Danach hat dieser Code gut funktioniert. – Volkirith

+0

stimme Volkirith zu. Dies funktioniert nicht mit VS2015 jetzt müssen alternative Anmeldeinformationen zuerst, bevor Sie es tatsächlich ausführen können. – afr0

0

Es wurden einige Aktualisierungen der Authentifizierung vorgenommen. Für .NET-Anwendungen empfehlen wir jetzt die Verwendung von VSTS client libraries. Eine andere Option ist die Verwendung von Azure Active Directory-Bibliotheken (ADAL). Weitere Informationen und Beispiele finden Sie unter VSTS's authentication documentation.