Bir Konsol Uygulamasından Team Foundation Server'a Bağlanma
Programlı olarak çalışan bir sunucusuna bağlanıp Team Foundation ve aşağıdaki örnekte kullanırsanız, bu sunucuda takım projeleri erişin.Örnek değiştirirseniz, hizmetler kullanabilirsiniz, alma ek Team Foundation Hizmetleri bu konuda daha sonra açıklar.Kimliğe bürünme, kullanarak adına diğerleri de çalışabilir , başka bir kullanıcı adına (kimliğe bürünme) gören bu konuda daha sonra açıklar.
Bu konuda
Örnek
Takım projesi koleksiyonları ve aşağıdaki örnekte kullanırsanız, bunların içeren takım projeleri listeleyebilir.
Bu örneği kullanmak için
C# konsol uygulaması oluşturun.
Aşağıdaki derlemelere başvurular ekleyin:
Bu konuda daha sonra görüntülenen kodu ile Program.cs içeriğini değiştirin.
Kodda değiştirmek Server, bağlantı noktası, ve VDir URL sunucunuza başvuruyor böylece TfsConfigurationServer nesne oluşturmak için kullanılan URL.
İpucu Doğru URL kullandığınızdan emin olmak için Ekip Gezgini sunucunuzdaki bir takım projenizi açın ve sunucu URL özelliklerini doğrulayın.
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
Ek Team Foundation Hizmetleri alma
Ek hizmet GetService yöntemlerden birini kullanarak erişebilirsiniz, Özet sınıf TfsConnection tanımlar ve TfsConfigurationServer ve TfsTeamProjectCollection uygular.
Kullandığınızda TfsConfigurationServer sınıfı, sunucunun tamamı için hizmetlere erişemez.Kullandığınızda TfsTeamProjectCollection sınıfı, takım projesi koleksiyonu için hizmetlere erişemez.Örneğin, ITeamFoundationRegistry için hizmet TfsConfigurationServer sunucusunun kayıtlı özellikleri sağlar.Öğesinden alınan aynı hizmeti TfsTeamProjectCollection bir takım projesi koleksiyonunun kayıtlı özellikleri sağlar.Bazı hizmetler yalnızca takım projesi koleksiyonları için geçerlidir.
Hizmet |
TfsConfigurationServer (sunucu düzeyi) |
TfsTeamProjectCollection (koleksiyon düzeyi) |
---|---|---|
Çalışan başka bir kullanıcı adına (kimliğe bürünme)
Bağlandığınızda Team Foundation Server, uygulamanızı çalışan farklı bir kimlik adına hareket etmek için kimliğe bürünme destekleyen bir yöntemini kullanabilirsiniz.Gerçekleştirilen tüm işlemler bağlantı Kimliğine bürünülen kimliği adına gerçekleştirdiği temel.Örneğin, uygulamanızın bir kullanıcı kimliği altında çalışır, ancak bir bağlantı oluşturun Team Foundation Server , kullanıcı B. temsil ederKullanıcı bir kaynak kodu bu koşullar altında bir değişiklik işaretlerse, bu kullanıcı değişikliği denetleyen B changeset kaydeder.
Team Foundation kimliğini kullanarak
Kullanabileceğiniz bir IdentityDescriptor nesnesi bağlandığınızda Team Foundation Server almasına kimliği belirtmek için.IdentityDescriptor Kimlikteki belirtir, Team Foundation tanımlar.Bu strateji kullandığınızda, parola belirtmeniz gerekmez.Kimlik doğrulaması olmalıdır olun istekleri başka bir kullanıcı adına olduğu durumlar dışında kimliği doğrulanmış (kullanıcı A) ve Kimliğine bürünülen (kullanıcı B) kimlikleri aynı izin,.
Sunucu düzeyi |
---|
Koleksiyon düzeyi |
---|
Kimliği doğrulanmış kimlik bilgilerini kullanarak
Kullanabileceğiniz bir ICredentials nesnesi bağlandığınızda Team Foundation Server almasına kimliği belirtmek için.Bu strateji özel izinler gerektirmez, ancak kimliği oluşturmak için parola elde etmek üzere kullanabilmelidir ICredentials nesne.
Ayrıca uygulaması belirtebilirsiniz ICredentialsProvider bağlandığınızda Team Foundation Server için yeni kimlik bilgileri isteklerini işlemek için.Sistem uygulanması çağırır ICredentialsProvider yeni istemek için belirttiğiniz kimlik bilgilerini tarafından belirtilen kimlik bilgilerini ICredentials nesne başarıyla kimlik doğrulaması veya işlemi gerçekleştirmek için yetkili.
Kullanıcı kimlik bilgileri için sormak için kullanabileceğiniz UICredentialsProvider sınıfının, hangi uygular ICredentialsProvider kullanıcıdan yeni kimlik bilgileri için bir oturum açma iletişim kutusu görüntüleyerek.
Sunucu düzeyi |
---|
Koleksiyon düzeyi |
---|
Teknikler birleşimini kullanarak
Her ikisi de kullanabileceğiniz bir Team Foundation kimlik ve bağlandığınızda doğrulanmış kimlik bilgilerini Team Foundation Server.Örneğin, uygulamanızın kimlik bilgileri altında bir kullanıcı için çalışabilir, ancak kullanıcı B için kimlik bilgilerini kullan ve belirtin bir IdentityDescriptor kullanıcı bağlandığınızda c Team Foundation Server.Bu durumda, bu bağlantıyı kullanarak yapılan istekleri kullanıcı B kimliği doğrulanmış ancak kullanıcı C. adına gerçekleştirilenBu strateji başarılı olması kullanıcı B olmalıdır olun istekleri başka bir kullanıcı adına izin.
Sunucu düzeyi |
---|
Koleksiyon düzeyi |
---|
Ek Kaynaklar
Takım projesi koleksiyonlarını yönetme
Team Foundation Server'da takım projelerine bağlanma
TfsConnection, TfsConfigurationServer ve TfsTeamProjectCollection sınıfları Tanıtımı Microsoft Web sitesinde
Sürüm denetimi API'ler ile TFS kimliğe bürünme kullanan Microsoft Web sitesinde.