Udostępnij za pośrednictwem


Połączyć się z aplikacji konsoli Team Foundation Server

Można programowo połączyć serwer, na którym działa Team Foundation i jeśli użyć następującego przykładu uzyskać dostęp projektów zespołu na tym serwerze.Zmodyfikowanie przykładzie, można korzystać z usług, Getting Additional Team Foundation Services opisano w dalszej części tego tematu.Może także działać w imieniu innych przy użyciu personifikacji, jako Acting on Behalf of Another User (Impersonation) opisano w dalszej części tego tematu.

W tym temacie

Przykład

Można wyświetlić listę zbiorów zespołu projektu i projektów zespołów, które zawierają, jeśli użyć następującego przykładu.

Aby wykorzystać ten przykład

  1. Tworzy aplikację konsoli C#.

  2. Dodaj odwołania do następujących zespołów:

    [!UWAGA]

    Jeśli Microsoft.TeamFoundation.Client i Microsoft.TeamFoundation.Common nie są wyświetlane na .NET karcie odniesienia okno dialogowe, użyj Przeglądaj kartę, aby dodać zgromadzeń.Można je znaleźć na także Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0.

  3. Zastąp zawartość plik Program.cs kod, który w dalszej części tego tematu.

  4. W tym kodzie Zamień Server, portu, i VDir adres URL używany do konstruowania obiektu TfsConfigurationServer, tak aby adres URL odnosi się do serwera.

    PoradaPorada

    Aby upewnić się, że używasz poprawny adres URL, użyj Team Explorer do zespołu projektu na serwerze otwórz i sprawdź właściwości adresu URL serwera.

    Team Foundation Server właściwości: adres URL

    using System;
    using System.Collections.ObjectModel;
    using Microsoft.TeamFoundation.Client; 
    using Microsoft.TeamFoundation.Framework.Common;
    using Microsoft.TeamFoundation.Framework.Client;
    
    namespace TfsApplication
    {
        class Program
        {
            static void Main(String[] args)
            {
                // Connect to Team Foundation Server
                //     Server is the name of the server that is running the application tier for Team Foundation.
                //     Port is the port that Team Foundation uses. The default port is 8080.
                //     VDir is the virtual path to the Team Foundation application. The default path is tfs.
                Uri tfsUri = (args.Length < 1) ? 
                    new Uri("http://Server:Port/VDir") : new Uri(args[0]);
    
                TfsConfigurationServer configurationServer =
                    TfsConfigurationServerFactory.GetConfigurationServer(tfsUri);
    
                // Get the catalog of team project collections
                ReadOnlyCollection<CatalogNode> collectionNodes = configurationServer.CatalogNode.QueryChildren(
                    new[] { CatalogResourceTypes.ProjectCollection },
                    false, CatalogQueryOptions.None);
    
                // List the team project collections
                foreach (CatalogNode collectionNode in collectionNodes)
                {
                    // Use the InstanceId property to get the team project collection
                    Guid collectionId = new Guid(collectionNode.Resource.Properties["InstanceId"]);
                    TfsTeamProjectCollection teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId);
    
                    // Print the name of the team project collection
                    Console.WriteLine("Collection: " + teamProjectCollection.Name);
    
                    // Get a catalog of team projects for the collection
                    ReadOnlyCollection<CatalogNode> projectNodes = collectionNode.QueryChildren(
                        new[] { CatalogResourceTypes.TeamProject },
                        false, CatalogQueryOptions.None);
    
                    // List the team projects in the collection
                    foreach (CatalogNode projectNode in projectNodes)
                    {
                        Console.WriteLine(" Team Project: " + projectNode.Resource.DisplayName);
                    }
                }
            }
        }
    }
    
    Imports System
    Imports System.Collections.ObjectModel
    Imports Microsoft.TeamFoundation.Client
    Imports Microsoft.TeamFoundation.Framework.Common
    Imports Microsoft.TeamFoundation.Framework.Client
    
    Module Module1
    
        Sub Main(ByVal sArgs() As String)
    
            ' Connect to the Team Foundation Server
            ' Server is the name of the server running the application tier for Team Foundation Server
            ' Port is the port that the Team Foundation Server uses. The default port is 8080.
            ' VDir is the virtual path to the Team Foundation application. The default value is tfs.
            Dim tfsUri As Uri
            If sArgs.Length = 0 Then
                tfsUri = New Uri("https://Server:8080/tfs")
            Else
                tfsUri = New Uri(sArgs(1))
            End If
    
            Dim configurationServer As New TfsConfigurationServer(tfsUri)
            configurationServer = TfsConfigurationServerFactory.GetConfigurationServer(tfsUri)
    
            ' Get the catalog of team project collections
            Dim collectionNodes As ReadOnlyCollection(Of CatalogNode)
            Dim gVar As Guid() = New Guid() {CatalogResourceTypes.ProjectCollection}
            collectionNodes = configurationServer.CatalogNode.QueryChildren(gVar, False, CatalogQueryOptions.None)
    
            ' List the team project collections
            For Each collectionNode In collectionNodes
                Dim collectionId As Guid = New Guid(collectionNode.Resource.Properties("InstanceID"))
    
                Dim teamProjectCollection As New TfsTeamProjectCollection(tfsUri)
                teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId)
                System.Console.WriteLine("Collection:" + teamProjectCollection.Name)
    
                ' Get a catalog of team projects for the collection
                Dim hVar As Guid() = New Guid() {CatalogResourceTypes.TeamProject}
    
                Dim projectNodes As ReadOnlyCollection(Of CatalogNode)
                projectNodes = collectionNode.QueryChildren(hVar, False, CatalogQueryOptions.None)
    
                ' List the team projects in the collection
                For Each projectNode In projectNodes
                    System.Console.WriteLine(" Team Project: " + projectNode.Resource.DisplayName)
                Next
    
            Next
    
    
        End Sub
    
    End Module
    
    

Uzyskiwanie dodatkowych usług Fundacji zespołu

Usługi dodatkowe można uzyskać dostęp za pomocą jednej z metod GetService, klasa abstrakcyjna TfsConnection definiuje i TfsConfigurationServer i TfsTeamProjectCollection wdrożenia.

Kiedy używać TfsConfigurationServer klasy, dostępu do usług, dla całego serwera.Kiedy używać TfsTeamProjectCollection klasy dostępu usług dla kolekcji zespołu projektu.Na przykład ITeamFoundationRegistry usługi dla TfsConfigurationServer zawiera zarejestrowanych właściwości serwera.Tę samą usługę nabytej z TfsTeamProjectCollection zapewnia zarejestrowanych właściwości kolekcji zespołu projektu.Niektóre usługi stosuje się do zespołu projektu tylko kolekcje.

Usługi

TfsConfigurationServer

(serwer poziom)

TfsTeamProjectCollection

(kolekcji poziom)

ITeamFoundationRegistry

Znacznik wyboru

Znacznik wyboru

IIdentityManagementService

Znacznik wyboru

Znacznik wyboru

ITeamFoundationJobService

Znacznik wyboru

Znacznik wyboru

IPropertyService

Znacznik wyboru

Znacznik wyboru

IEventService

Znacznik wyboru

Znacznik wyboru

ISecurityService

Znacznik wyboru

Znacznik wyboru

ILocationService

Znacznik wyboru

Znacznik wyboru

TswaClientHyperlinkService

Znacznik wyboru

Znacznik wyboru

ITeamProjectCollectionService

Znacznik wyboru

IAdministrationService

Znacznik wyboru

Znacznik wyboru

ICatalogService

Znacznik wyboru

VersionControlServer

Znacznik wyboru

WorkItemStore

Znacznik wyboru

IBuildServer

Znacznik wyboru

ITestManagementService

Znacznik wyboru

ILinking

Znacznik wyboru

ICommonStructureService3

Znacznik wyboru

IServerStatusService

Znacznik wyboru

IProcessTemplates

Znacznik wyboru

Działając w imieniu innego użytkownika (Personifikacja)

Kiedy łączysz się z Team Foundation Server, można stosować metodę, która obsługuje personifikację do działania w imieniu tożsamości niż uruchamia aplikację.Wszystkie operacje wykonywane są oparte na, że połączenia będą wykonywane w imieniu tożsamości personifikowanego.Na przykład, aplikacja może uruchamiane z tożsamością użytkownika, ale utworzyć połączenie z Team Foundation Server , personifikuje użytkownika B.Użytkownik a sprawdza zmiany kodu źródłowego w tych warunkach, changeset rejestruje tego użytkownika b zaewidencjonować zmiany.

Bb286958.collapse_all(pl-pl,VS.110).gifPrzy użyciu tożsamości Fundacji zespołu

Można użyć IdentityDescriptor obiektu po podłączeniu do Team Foundation Server do określenia tożsamości personifikacji.IdentityDescriptor Określa tożsamość, Team Foundation definiuje.Korzystając z tej strategii, nie trzeba określać hasła.Uwierzytelnioną tożsamość musi mieć żądania w imieniu innego użytkownika uprawnienia, z wyjątkiem przypadków, gdy uwierzytelnieni (użytkownika A) i tożsamości personifikowanego (użytkownika B) są takie same.

Poziom serwera

  • TfsConfigurationServer.TfsConfigurationServer(RegisteredConfigurationServer, IdentityDescriptor)

  • TfsConfigurationServer.TfsConfigurationServer(Uri, IdentityDescriptor)

Poziom pobierania

  • TfsTeamProjectCollection.TfsTeamProjectCollection(RegisteredProjectCollection, IdentityDescriptor)

  • TfsTeamProjectCollection.TfsTeamProjectCollection(Uri, IdentityDescriptor)

Bb286958.collapse_all(pl-pl,VS.110).gifZa pomocą uwierzytelnionych poświadczeń

Można użyć ICredentials obiektu po podłączeniu do Team Foundation Server do określenia tożsamości personifikacji.Strategia ta nie wymaga specjalnych uprawnień, ale musi być w stanie uzyskać hasło tożsamości do tworzenia ICredentials obiektu.

Można również określić implementacja ICredentialsProvider po podłączeniu do Team Foundation Server do obsługi żądań uzyskania nowych poświadczeń.System wymaga wykonania ICredentialsProvider określić nowe żądanie poświadczenia po poświadczenia, które są określone przez ICredentials obiektu są pomyślnie uwierzytelniony lub upoważniony do wykonania operacji.

Aby monitować użytkownika o poświadczenia, można użyć UICredentialsProvider klasy, który implementuje ICredentialsProvider , wyświetlając okno dialogowe logowania, aby monitować użytkownika o nowe poświadczenia.

Poziom serwera

Poziom pobierania

Bb286958.collapse_all(pl-pl,VS.110).gifUżywając kombinacji technik

Można korzystać zarówno Team Foundation tożsamości i uwierzytelnionych poświadczeń, łącząc się z Team Foundation Server.Na przykład aplikacja może działać w obszarze poświadczenia dla użytkownika, ale mogą używać poświadczeń dla użytkownika b i określ IdentityDescriptor dla użytkownika c po podłączeniu do Team Foundation Server.W przypadku żądań przy użyciu danego połączenia są uwierzytelniony jako użytkownik B, ale wykonywaną w imieniu użytkownika C.Dla tej strategii powiodła się, użytkownik b musi mieć żądania w imieniu innego użytkownika uprawnienia.

Poziom serwera

  • TfsConfigurationServer.TfsConfigurationServer(RegisteredConfigurationServer, ICredentials, ICredentialsProvider, IdentityDescriptor)

  • TfsConfigurationServer.TfsConfigurationServer(Uri, ICredentials, ICredentialsProvider, IdentityDescriptor)

Poziom pobierania

  • TfsTeamProjectCollection.TfsTeamProjectCollection(RegisteredProjectCollection, ICredentials, ICredentialsProvider, IdentityDescriptor)

  • TfsTeamProjectCollection.TfsTeamProjectCollection(Uri, ICredentials, ICredentialsProvider, IdentityDescriptor)

Zasoby dodatkowe

Organizowanie na serwerze zespołu projektu kolekcje

Połączyć się z zespołu projektów w Team Foundation Server

Wprowadzenie, TfsConnection, TfsConfigurationServer i TfsTeamProjectCollection klasy w witrynie sieci Web firmy Microsoft

Wersja API sterowania przy użyciu personifikacji TFS w witrynie sieci Web firmy Microsoft.