Exporter (0) Imprimer
Développer tout
Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

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

Vous pouvez par programme se connecter à un serveur qui exécute Team Foundation et ensuite accéder aux projets d'équipe sur ce serveur si vous utilisez l'exemple suivant. Si vous modifiez l'exemple, vous pouvez utiliser les services que Getting Additional Team Foundation Services décrit ultérieurement dans cette rubrique. Vous pouvez également agir de la part des autres à l'aide de l'emprunt d'identité, comme Acting on Behalf of Another User (Impersonation) décrit ultérieurement 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 :

    Remarque Remarque

    Si Microsoft.TeamFoundation.Client et Microsoft.TeamFoundation.Common n'apparaissent pas sur l'onglet .NET de la boîte de dialogue Références , utilisez l'onglet Parcourir pour ajouter les assemblys. Vous pouvez les rechercher dans %ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0.

  3. Remplacez le contenu de Program.cs par le code qui apparaît plus loin dans cette rubrique.

  4. Dans ce code, remplacez serveur, port, et VDir dans l'URL qui est utilisé pour construire l'objet de TfsConfigurationServer afin que l'URL fait référence à votre serveur.

    Conseil Conseil

    Pour vous assurer que vous utilisez l'URL correcte, utilisez Team Explorer pour ouvrir un projet d'équipe sur votre serveur, et vérifiez les propriétés d'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 en utilisant l'une des méthodes de GetService que la classe abstraite TfsConnection définit et qu' TfsConfigurationServer et TfsTeamProjectCollection appliquent.

Lorsque vous utilisez la classe d' TfsConfigurationServer , vous accédez aux services du serveur entier. Lorsque vous utilisez la classe d' TfsTeamProjectCollection , vous accédez aux services de la collection de projets d'équipe. Par exemple, le service d' ITeamFoundationRegistry pour TfsConfigurationServer fournit des propriétés stockées du serveur. Le même service qui est entré d' TfsTeamProjectCollection fournit des propriétés lors d'une collection de projets d'équipe. Certains services s'appliquent aux collections de projets d'équipe uniquement.

Lorsque vous vous connectez à Team Foundation Server, vous pouvez utiliser une méthode qui prend l'emprunt d'identité pour agir de la part d'une identité différente de celle qui exécute votre application. Toutes les opérations exécutées sur cette connexion sont exécutées 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'utilisateur B. Si l'utilisateur A archive une modification au code source dans ces conditions, l'ensemble de modifications s'inscrit que l'utilisateur B a archivé la modification.

Bb286958.collapse_all(fr-fr,VS.120).gifÀ l'aide d'une identité de Team Foundation

Vous pouvez utiliser un objet d' IdentityDescriptor lorsque vous vous connectez à Team Foundation Server pour spécifier l'identité pour emprunter. IdentityDescriptor spécifie une identité qu' Team Foundation définit. Lorsque vous utilisez cette stratégie, vous n'avez pas besoin de spécifier un mot de passe. L'identité authentifiée doit avoir l'autorisation Effectuez les requêtes de la part d'un autre utilisateur , sauf lorsqu' authentifié (Un utilisateur) et emprunté (les identités d'utilisateur B) sont identiques.

Au niveau serveur

  • TfsConfigurationServer.TfsConfigurationServer(RegisteredConfigurationServer, IdentityDescriptor)

  • TfsConfigurationServer.TfsConfigurationServer(Uri, IdentityDescriptor)

Niveau

  • TfsTeamProjectCollection.TfsTeamProjectCollection(RegisteredProjectCollection, IdentityDescriptor)

  • TfsTeamProjectCollection.TfsTeamProjectCollection(Uri, IdentityDescriptor)

Bb286958.collapse_all(fr-fr,VS.120).gifÀ l'aide de les informations d'identification authentifiées

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

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

Pour inviter l'utilisateur à entrer les informations d'identification, vous pouvez utiliser la classe d' UICredentialsProvider , qui implémente ICredentialsProvider en affichant une boîte de dialogue d'ouverture de session pour inviter l'utilisateur à les nouvelles informations d'identification.

Au niveau serveur

Niveau

Bb286958.collapse_all(fr-fr,VS.120).gifÀ l'aide d'une combinaison des techniques

Vous pouvez utiliser une identité d' Team Foundation et les informations d'identification authentifiées lorsque vous vous connectez à Team Foundation Server. Par exemple, votre application peut s'exécuter sous les 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 lorsque vous vous connectez à Team Foundation Server. Dans ce cas, les demandes effectuées à l'aide de cette connexion sont authentifiées comme utilisateur B et exécutées pour le compte de l'utilisateur C. Pour que cette stratégie réussisse, l'utilisateur B doit avoir l'autorisation Effectuez les requêtes de la part d'un autre utilisateur .

Au niveau serveur

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

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

Niveau

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

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

Cela vous a-t-il été utile ?
(1500 caractères restants)
Merci pour vos suggestions.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft. Tous droits réservés.