使用tfs api连接到tfs时身份验证失败

时间:2012-12-13 06:23:07

标签: c# asp.net tfs tfs2010

我面临一个奇怪的问题。我想使用tfs api programmitcally连接tfs服务器。 即使在提供了正确的认证信用之后,它也是失败的。但是如果我通过在浏览器中输入tfs服务器名称手动完成它就已经连接了。

代码:

TeamFoundationServer tfs = new TeamFoundationServer(new Uri("http://10.112.205.145:8080/tfs"),  new NetworkCredential(@"usrname", "pwd", "domain"));
tfs.EnsureAuthenticated()

请建议。

3 个答案:

答案 0 :(得分:4)

一种简单的方法是在代码中添加“Syetem.Net”命名空间,然后使用“CredentialCache”对象。使用“DefaultCredentials”将使用活动用户的凭据进行身份验证。

// connect to the collection
using (TfsTeamProjectCollection teamProjectCollection = new TfsTeamProjectCollection("http://server:8080/tfs/DefaultCollection", CredentialCache.DefaultCredentials))
            { 
                //Do Stuff here 
            }

答案 1 :(得分:1)

你有没有试过这样做..

TfsTeamProjectCollection collection = new TfsTeamProjectCollection(
    new Uri(http://server:8080/tfs/DefaultCollection,
    new System.Net.NetworkCredential("domain_name\\user_name", "pwd"));
collection.EnsureAuthenticated();

答案 2 :(得分:0)

对于您的问题,通常会出现如下错误:

失败的可能原因包括: - Team Foundation Server的名称,端口号或协议不正确。 - Team Foundation Server处于脱机状态。 - 密码已过期或不正确。

问题的根本原因是 URI应该以集合名称结束。所以解决方法是改变" http://10.112.205.145:8080/tfs"到" http://10.112.205.145:8080/tfs/ %YourCollectionName%",然后就可以了! : - )