Připojit k Team Foundation Server z aplikace konzoly
Pomocí programu můžete připojit k serveru se systémem Team Foundation a přístup k týmové projekty na serveru používáte následující příklad.V příkladu změníte, můžete použít služby, Getting Additional Team Foundation Services popsány dále v tomto tématu.Také může jednat jménem jiné pomocí zosobnění, jako Acting on Behalf of Another User (Impersonation) popsány dále v tomto tématu.
V tomto tématu
Příklad
Můžete vytvořit seznam kolekcí týmu projektu a týmové projekty, které obsahují, pokud můžete použít následující příklad.
Chcete-li použít tento příklad
Vytvoří aplikaci konzole C#.
Přidejte odkazy do následujících sestavení:
[!POZNÁMKA]
Pokud Microsoft.TeamFoundation.Client a Microsoft.TeamFoundation.Common na rozhraní kartě odkazy dialogové okno, použití Procházet kartu přidat sestavení.Naleznete je na %ProgramFiles%\Microsoft 10.0\Common7\IDE\ReferenceAssemblies\v2.0 Visual Studio.
Nahradíte obsah Program.cs kód, který je dále v tomto tématu.
V tomto kódu nahradit Server, Port, a VDir adresy URL používá k TfsConfigurationServer objektu tak, aby adresy URL odkazuje na server.
Tip
Ujistěte se, že používáte správnou adresu URL, použijte Průzkumník týmových projektů , otevřete projekt týmu na serveru a ověřte vlastnosti adresy URL serveru.
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
Získání další služby Team Foundation
Další služby lze přistupovat pomocí metody GetService, abstraktní třída TfsConnection definuje a TfsConfigurationServer a TfsTeamProjectCollection provedení.
Při použití TfsConfigurationServer třídy, přístup ke službám pro celý server.Při použití TfsTeamProjectCollection třídy, přístup ke službám pro kolekci týmu projektu.Například ITeamFoundationRegistry služby pro TfsConfigurationServer poskytuje registrované vlastností serveru.Stejné služby, který je získán z TfsTeamProjectCollection poskytuje registrované vlastnosti kolekce týmu projektu.Některé služby použít pouze týmu projekt kolekcí.
Služba |
TfsConfigurationServer (na úrovni serveru) |
TfsTeamProjectCollection (na úrovni kolekce) |
---|---|---|
Jménem jiného uživatele (zosobnění)
Při připojení k Team Foundation Server, můžete použít metodu, která podporuje zosobnění jednat jménem identity než spustí aplikace.Všechny operace jsou prováděny na základě, připojení se provádějí jménem identity zosobněného.Například by aplikace s identitou uživatele a spustit, ale vytvořit připojení k Team Foundation Server , zosobní uživatele B.Pokud uživatel a kontroly ve změně zdrojového kódu za těchto podmínek, zaznamená changeset který uživatel b změnu změnami.
Pomocí Identity Team Foundation
Můžete použít IdentityDescriptor objektu při připojení k Team Foundation Server k určení totožnosti zosobnit.IdentityDescriptor Určuje identity, Team Foundation definuje.Při použití této strategie, není nutné zadat heslo.Ověřená identita musí mít požadavky za jiného uživatele oprávnění s výjimkou ověřené (uživatel A) a identity zosobněného (uživatel B) při stejné.
Úroveň serveru |
---|
|
Úrovni kolekce webů |
---|
|
Pomocí ověření pověření
Můžete použít ICredentials objektu při připojení k Team Foundation Server k určení totožnosti zosobnit.Tato strategie nevyžaduje zvláštní oprávnění, ale musí být schopny získat heslo vytvořit identitu ICredentials objektu.
Můžete také určit implementace ICredentialsProvider při připojení k Team Foundation Server požadavků nová pověření.Systém vyžaduje provádění ICredentialsProvider při zadání nového požadavku pověření pověření, které jsou určeny ICredentials objekt úspěšně ověřen nebo oprávnění k provedení operace.
Výzva k zadání pověření, můžete použít UICredentialsProvider třídy, která implementuje ICredentialsProvider zobrazením přihlašovací dialogové nová pověření uživatele.
Úroveň serveru |
---|
|
Úrovni kolekce webů |
---|
|
Pomocí kombinace technik
Můžete použít i Team Foundation identitu a ověřené pověření při připojení k Team Foundation Server.Například aplikace může být oprávnění pro uživatele A, ale mohou použít pověření pro uživatele b a zadejte IdentityDescriptor pro uživatele c při připojení k Team Foundation Server.V tomto případě jsou požadavky, které jsou provedeny pomocí tohoto připojení ověřen jako uživatel b ale prováděny jménem uživatele C.Tato strategie úspěšné, musí mít uživatel b požadavky za jiného uživatele oprávnění.
Úroveň serveru |
---|
|
Úrovni kolekce webů |
---|
|
Další zdroje informací
Uspořádání serveru s kolekcí týmu projektu
Připojit k týmové projekty v Team Foundation Server
Představujeme TfsConnection, TfsConfigurationServer a TfsTeamProjectCollection třídy na webu společnosti Microsoft
TFS zosobnění pomocí rozhraní API verze ovládacího prvku na webu společnosti Microsoft.