Farklı Kullanıcı ile TFS Sunucusuna Bağlanmak

Team Foundation Server için eklentiler yazmaya karar verdim. Bunun içinde makinama sanal sunucu içerisinde Windows Server 2003 R2 ardında da TFS’yi kurdum. TFS’yi Sanal makine üzerinde çalışacağımdan bir Domain Controller ayarlamaya gerek görmedim. Sanal makinemi sunucu olması için açarak normal Windows Xp Sp2 üzerinde de kodumu yazmaya başladım. Fakat kod içerisinde bir türlü TFS sunucuna oturum açamıyordum :

TeamFoundationServerFactory.GetServer("Sunucu Adı");

      Tamam, iki makine üzerindeki kullanıcılar farklı; ama en azından kullanıcı adı ve şifresi girebileceğim bir yer eklenseydi hiç fena olmazdı. Sanal makinemdeki ve normal makinemdeki kullanıcı adları ve şifreleri aynıydı, bu tarz bir problemle karşılaşmamak için ayarlamıştım…

    Biraz araştırınca sorunumu çözecek sihirli satırları buldum

tfs = TeamFoundationServerFactory.GetServer("Sunucu Adi", new UICredentialsProvider());
tfs.EnsureAuthenticated();

      İkinci satırdaki EnsureAuthenticated TFS’de başarıyla oturum açtığınızı kontrol eder, eğer başarısız ise TeamFoundationServerUnauthorizedException hatasını atarak programınızın bir sonraki satıra geçmesini ve başka problemlerle boğuşmanızı engeller. Benim iki taraftada aynı kullanıcı adı ve şifreyi vermemden dolayı herhangi bir şifre ekranı karşıma gelmedi; ama okuduğum kadarıyla aynı olmaması durumunda sizden bir dialog vasıtasıyla bu bilgileri istiyecekmiş.

    EnsureAuthenticated fonksiyonu yerine Authenticate fonksiyonunu da kullanabilirsiniz. Sadece bu iki komut sizin karşınıza şifre dialoğunu getirecektir.

    Peki bu fonksiyonlar aynı işi yapıyorsa neden iki tane var? Yanıtı ufak bir performans kriterine bağlı aslına bakarsanız : Authenticate fonksiyonu her çağırıldığında sunucuya giderek kontrol yapılmasını sağlar, EnsureAuthenticated fonksiyonu ise sadece kullanıcının sisteme girişi kontrolü yapılmadıysa sunucuya gider. Dolayısıyla da hangisini kullanacağınız tamamen sistem tasarımınıza kalmış.

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# konusundan Microsoft tarafından dört yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz.
vCard - Twitter - Facebook - Google+

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir