2013-03-09 32 views
3

我如何提供TfsTeamProjectCollectionFactory.GetTeamProjectCollection的憑據?
我想開發我自己的WCF服務從女巫我會提出請求到TFS
我需要這個WCF服務,因爲我想從移動管理我的TFS文件女巫我無法使用Microsoft.TeamFoundation。* dll從WebService連接到Visual Studio團隊服務

我一直在努力這樣

Uri tpcAddress= new Uri("https://myserver.visualstudio.com/DefaultCollection"); 
TfsConnection tfsc = new TfsConfigurationServer(tpcAddress, 
     new NetworkCredential("[email protected]", "password")); 
TfsWebClient wc = new TfsWebClient(tfsc); 
tfsc.Connect(ConnectOptions.IncludeServices); 

第二個嘗試使用自定義類從ICredentialsProvider

ICredentialsProvider prov = new myCredentials(); 
var tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tpcAddress, prov); 
tpc.EnsureAuthenticated(); 
tpc.Authenticate(); 

public class myCredentials : ICredentialsProvider 
{ 
    public ICredentials GetCredentials(Uri uri, ICredentials failedCredentials) 
    { 
     return new NetworkCredential("[email protected]", "password"); 
    } 
    public void NotifyCredentialsAuthenticated(Uri uri) 
    { 
    } 
} 

衍生而來,但它只能我在我登錄到tfs後,我的機器正在運行。

+0

如果你提供你自己的WCF服務,你爲什麼不運行該服務爲用戶(服務帳戶)誰是已經驗證? – Christoffer 2013-03-10 19:17:22

+0

因爲我努力使這項服務的移動用戶,使他們能夠進入編輯從他們的Team Foundation Server – csharpwinphonexaml 2013-03-11 17:12:29

回答

1

爲避免被提示使用您的Live ID登錄或必須已經登錄,您需要啓用備用登錄憑據並將其與您的服務一起使用。

本博客文章將告訴您如何:

http://blogs.msdn.com/b/buckh/archive/2013/01/07/how-to-connect-to-tf-service-without-a-prompt-for-liveid-credentials.aspx

請注意,你需要有VS 2012 Update 1的安裝有此功能。

希望這會有所幫助。

+0

刪除其元素考慮到這一背景: 本地機器:的Visual Studio 2012年更新1個 Web服務器:未知 做上面的示例工作,如果我嵌入在我的web服務庫? – csharpwinphonexaml 2013-03-12 19:55:23

0

我最近發現了這個解決方案:

NetworkCredential netCred = new NetworkCredential(user,pass); 

BasicAuthCredential basicCred = new BasicAuthCredential(netCred); 

TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred); 

tfsCred.AllowInteractive = false; 

TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(path), TFSCred); 
相關問題