Visual studio 2012 使用Visual Studio 2012和C sharp连接到microsoft cloud TFS服务器

Visual studio 2012 使用Visual Studio 2012和C sharp连接到microsoft cloud TFS服务器,visual-studio-2012,tfs,Visual Studio 2012,Tfs,我正在构建一个asp.netwebforms站点,该站点可以连接到Microsoft上托管的tfs并从中获取数据。当我使用Cassini运行项目时,它运行良好,因为它从浏览器获得了身份验证。但我想从代码背后做这件事 我尝试过各种设置,如 var tfs = new TfsTeamProjectCollection(CollectionUri, new UICredentialsProvider()); [现在不推荐将其作为方法使用,不应使用] 或 甚至 var tfs = new TfsTea

我正在构建一个asp.netwebforms站点,该站点可以连接到Microsoft上托管的tfs并从中获取数据。当我使用Cassini运行项目时,它运行良好,因为它从浏览器获得了身份验证。但我想从代码背后做这件事

我尝试过各种设置,如

var tfs = new TfsTeamProjectCollection(CollectionUri, new UICredentialsProvider());
[现在不推荐将其作为方法使用,不应使用]

甚至

var tfs = new TfsTeamProjectCollection(CollectionUri, new NetworkCredential("windowsliveid","password"));
我没有域,因为它是Windows Liveid

然后

tfs.EnsureAuthenticated();
我还通过

var CollectionUri = new Uri("https://companyname.visualstudio.com/DefaultCollection/");
关于如何正确认证的任何想法。我想要么提示auth窗口,要么直接给出用户名和密码

------------------------------解决了---------------------------------

以下是根据Martin Woodward非常有用的建议进行谷歌搜索后的解决方案

必须通过TFS帐户激活第一个备用凭据。然后可以将代码更改为这样,效果很好:)

请记住,要使代码正常工作,您需要最新版本的VS 2012(至少更新1)。否则您无法引用BasicAuthCredential

        var nc = new NetworkCredential("username", "password");
        var bc = new BasicAuthCredential(nc);
        var tfsc = new TfsClientCredentials(bc) {AllowInteractive = false};
        var tfs = new TfsTeamProjectCollection(CollectionUri, tfsc);
        tfs.Authenticate();
这里是引用的DLL

using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
请查看或尝试在您的帐户上启用备用凭据,这将允许您使用http basic auth进行身份验证


不过,您可能需要服务凭证来证明您正在做的事情。

非常感谢您的建议。它最终帮助我找到了解决方案!!!
using Microsoft.TeamFoundation.Build.Client;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
using Microsoft.TeamFoundation.WorkItemTracking.Client;