Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

Connexion à Team Foundation Server à partir d'une application console

Vous pouvez vous connecter par programmation à un serveur qui exécute Team Foundation et accéder aux projets d'équipe de ce serveur si vous utilisez l'exemple suivant. Si vous changez l'exemple, vous pouvez utiliser les services décrits dans Getting Additional Team Foundation Services plus loin dans cette rubrique. Vous pouvez également agir au nom d'autres personnes à l'aide de l'emprunt d'identité, comme cela est décrit dans Acting on Behalf of Another User (Impersonation) plus loin dans cette rubrique.

Dans cette rubrique

Vous pouvez répertorier les collections de projets d'équipe et les projets d'équipe qu'ils contiennent, si vous utilisez l'exemple suivant.

Pour utiliser cet exemple

  1. Créez une application console C#.

  2. Ajoutez des références aux assemblys suivants :

  3. Remplacez le contenu de Program.cs par le code situé plus loin dans cette rubrique.

  4. Dans ce code, remplacez Server, Port et VDir dans l'URL qui permet de construire l'objet TfsConfigurationServer pour que l'URL fasse référence à votre serveur.

    Conseil Conseil

    Pour être sûr d'utiliser l'URL appropriée, utilisez Team Explorer pour ouvrir un projet d'équipe sur votre serveur, puis vérifiez les propriétés de l'URL du serveur.

    Propriétés de Team Foundation Server : 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);
                    }
                }
            }
        }
    }
    
    

Vous pouvez accéder à des services supplémentaires à l'aide de l'une des méthodes GetService définies par la classe abstraite TfsConnection et implémentées par TfsConfigurationServer et TfsTeamProjectCollection.

Quand vous utilisez la classe TfsConfigurationServer, vous accédez aux services de l'ensemble du serveur. Quand vous utilisez la classe TfsTeamProjectCollection, vous accédez aux services de la collection de projets d'équipe. Par exemple, le service ITeamFoundationRegistry de TfsConfigurationServer fournit les propriétés inscrites du serveur. Le même service acquis à partir de TfsTeamProjectCollection fournit les propriétés inscrites d'une collection de projets d'équipe. Certains services s'appliquent uniquement aux collections de projets d'équipe.

Quand vous vous connectez à Team Foundation Server, vous pouvez utiliser une méthode qui prend en charge l'emprunt d'identité pour agir au nom d'une autre identité que celle qui exécute votre application. Toutes les opérations effectuées à partir de cette connexion le sont au nom de l'identité empruntée. Par exemple, votre application peut s'exécuter sous l'identité de l'utilisateur A mais créer une connexion à Team Foundation Server qui emprunte l'identité de l'utilisateur B. Si l'utilisateur A archive une modification apportée au code source dans ces conditions, l'ensemble de modifications enregistre que l'utilisateur B a archivé la modification.

Bb286958.collapse_all(fr-fr,VS.120).gifUtilisation d'une identité Team Foundation

Vous pouvez utiliser un objet IdentityDescriptor quand vous vous connectez à Team Foundation Server pour spécifier l'identité à emprunter. IdentityDescriptor spécifie une identité définie par Team Foundation. Quand vous utilisez cette stratégie, vous n'avez pas besoin de spécifier de mot de passe. L'identité authentifiée doit disposer de l'autorisation Faire des demandes pour le compte de tiers, sauf si l'identité authentifiée (utilisateur A) et l'identité empruntée (utilisateur B) sont les mêmes.

Niveau serveur

  • TfsConfigurationServer.TfsConfigurationServer(RegisteredConfigurationServer, IdentityDescriptor)

  • TfsConfigurationServer.TfsConfigurationServer(Uri, IdentityDescriptor)

Niveau collection

  • TfsTeamProjectCollection.TfsTeamProjectCollection(RegisteredProjectCollection, IdentityDescriptor)

  • TfsTeamProjectCollection.TfsTeamProjectCollection(Uri, IdentityDescriptor)

Bb286958.collapse_all(fr-fr,VS.120).gifUtilisation d'informations d'identification authentifiées

Vous pouvez utiliser un objet ICredentials quand vous vous connectez à Team Foundation Server pour spécifier l'identité à emprunter. Cette stratégie ne demande pas d'autorisations spéciales. Toutefois, vous devez obtenir le mot de passe de l'identité pour créer l'objet ICredentials.

Vous pouvez également spécifier une implémentation de ICredentialsProvider quand vous vous connectez à Team Foundation Server pour gérer les demandes de nouvelles informations d'identification. Le système appelle l'implémentation de ICredentialsProvider que vous spécifiez pour demander de nouvelles informations d'identification quand les informations d'identification spécifiées par l'objet ICredentials ne sont pas authentifiées avec succès ou autorisées à effectuer l'opération.

Pour demander à l'utilisateur des informations d'identification, vous pouvez utiliser la classe UICredentialsProvider, qui implémente ICredentialsProvider en affichant une boîte de dialogue de connexion qui demande à l'utilisateur de nouvelles informations d'identification.

Niveau serveur

Niveau collection

Bb286958.collapse_all(fr-fr,VS.120).gifUtilisation d'une combinaison de techniques

Vous pouvez utiliser à la fois une identité Team Foundation et des informations d'identification authentifiées quand vous vous connectez à Team Foundation Server. Par exemple, votre application peut s'exécuter à l'aide des informations d'identification de l'utilisateur A, mais vous pouvez utiliser les informations d'identification de l'utilisateur B et spécifier IdentityDescriptor pour l'utilisateur C quand vous vous connectez à Team Foundation Server. Dans ce cas, les demandes qui sont effectuées à l'aide de cette connexion sont authentifiées comme étant celles de l'utilisateur B mais effectuées au nom de l'utilisateur C. Pour que cette stratégie réussisse, l'utilisateur B doit disposer de l'autorisation Faire des demandes pour le compte de tiers.

Niveau serveur

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

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

Niveau collection

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

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

Ajouts de la communauté

Afficher:
© 2015 Microsoft