0

在我的 .Net windows 应用程序(代码生成器)中,我想以编程方式从 TFS 服务中检出文件。虽然我可以毫无问题地从 TFS 服务访问和签出 VS2010 中的文件,但我的程序总是返回

“TF30064:您无权访问服务器”

我尝试了很多东西,比如:

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

任何帮助深表感谢

4

2 回答 2

0

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

它说的是控制台应用程序,但您也可以在 WinForm 应用程序中使用所有提示。

特别是(代表其他用户(冒充)中的这一部分):

使用经过身份验证的凭据

您可以在连接到 Team Foundation Server 时使用 ICredentials 对象来指定要模拟的身份。此策略不需要特殊权限,但您必须能够获取身份的密码才能创建 ICredentials 对象。当您连接到 Team Foundation Server 以处理对新凭据的请求时,您还可以指定 ICredentialsProvider 的实现。当 ICredentials 对象指定的凭据未成功验证或授权执行操作时,系统调用您指定的 ICredentialsProvider 的实现来请求新凭据。要提示用户输入凭据,您可以使用 UICredentialsProvider 类,该类通过显示登录对话框来提示用户输入新凭据来实现 ICredentialsProvider。

于 2013-03-04T20:43:05.467 回答
0

如果您以自己的身份运行应用程序,并且可以访问 TFS,那么您可以这样做:

var uri = new Uri("http://tfsserver:8080/tfs/MyCollection");
using (var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(uri))     
{         
    tfs.EnsureAuthenticated(); 
    //Your code goes here...
}
于 2013-03-04T20:42:31.680 回答