2013-03-04 30 views
0

在我的.net窗口應用程序(代碼生成器)中,我想從TFS服務中檢出文件programmaticaly。雖然我在VS2010從TFS服務沒有任何問題訪問和檢查的文件,我的程序總是返回從VSForce的WinForms驗證到TFS服務失敗

「TF30064:您沒有權限訪問服務器」

我已經試過無數的事情,這樣的事情:

var account = new NetworkCredential(Username, Password); 
tfs.TfsTeamProjectCollection teamProjectCollection = 
    new tfs.TfsTeamProjectCollection(new Uri(anUrl), account); 
teamProjectCollection.Authenticate(); 

如果你正在運行的應用程序,你以自己的任何幫助深表感謝

回答

0

,和你有權訪問TFS,那麼你可以這樣做:

var uri = new Uri("http://tfsserver:8080/tfs/MyCollection"); 
using (var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(uri))  
{   
    tfs.EnsureAuthenticated(); 
    //Your code goes here... 
} 
+0

感謝戴夫, 我懷疑這將是一些簡單的像的.. – user1386636 2013-03-05 16:29:42

0

看一看:Connect to Team Foundation Server from a Console Application

它說的是一個控制檯應用程序,但是您也可以在WinForm應用程序中使用所有提示。

在特殊,這部分(代理在其他用戶的代(模擬)):

使用驗證的憑據

您可以使用ICredentials對象 當您連接到Team Foundation服務器指定標識爲 模仿。此策略不需要特殊的權限,但 您必須能夠獲取標識的密碼才能創建 ICredentials對象。您還可以在連接到Team Foundation Server時指定 ICredentialsProvider的實現,以 處理對新憑據的請求。當由 ICredentials對象指定的憑證沒有成功通過認證或授權 執行操作時,系統調用您指定的ICredentialsProvider的 實施,以請求新的 憑據。要提示用戶輸入憑據,您可以使用UICredentialsProvider類來實現 ICredentialsProvider,方法是顯示登錄對話框以提示 用戶提供新憑據。

+0

感謝拉斐爾, 讓我知道這個例子的。 – user1386636 2013-03-05 16:30:54