无法从c#代码连接到我的Tfs服务器

无法从c#代码连接到我的Tfs服务器,c#,tfs,credentials,azure-devops,C#,Tfs,Credentials,Azure Devops,我们正在尝试使用TeamFoundationServer.net控件对托管在c#中的服务器进行身份验证,以下是我的代码: NetworkCredential tfsCredential = new NetworkCredential(username, password); TeamFoundationServer tfsServer = new TeamFoundationServer(tfsAddress, tfsCredential); tfsServer.Authenticate();

我们正在尝试使用TeamFoundationServer.net控件对托管在c#中的服务器进行身份验证,以下是我的代码:

NetworkCredential tfsCredential = new NetworkCredential(username, password);
TeamFoundationServer tfsServer = new TeamFoundationServer(tfsAddress, tfsCredential);

tfsServer.Authenticate();
请注意,这不是本地TFS服务器,它是位于的托管TFS服务,我们尝试使用windows live帐户和备用身份验证凭据登录,但每次尝试身份验证时,internet explorer都会在新的windows中打开并请求凭据


如果我们使用IE提示符进行连接,它可以工作,但我们希望存储凭据并连接到服务器,而不需要每次都请求凭据,

您可以根据服务器的模拟来尝试使用此代码

var serverUrl  = "";

ICredentials credentials = new NetworkCredential(username, password, domain);
ICredentialsProvider TFSProxyCredentials = new NetworkCredentialsProvider(credentials);

TfsTeamProjectCollection currentCollection = new TfsTeamProjectCollection(new Uri(serverUrl), credentials);


// Get the TFS Identity Management Service
IIdentityManagementService identityManagementService = currentCollection.GetService<IIdentityManagementService>();
// Look up the user that we want to impersonate
TeamFoundationIdentity identity = identityManagementService.ReadIdentity(IdentitySearchFactor.AccountName, username, MembershipQuery.None, ReadIdentityOptions.None);


// Open collection impersonated
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(serverUrl), credentials, TFSProxyCredentials, identity.Descriptor);

//For example we can access to service WorkItemStore 
var workItemStore = tfs.GetService<WorkItemStore>();
var serverUrl=”“;
ICredentials credentials=新的网络凭据(用户名、密码、域);
ICredentialsProvider TFSProxyCredentials=新的网络凭据提供程序(凭据);
TfsatmProjectCollection currentCollection=新TfsatmProjectCollection(新Uri(服务器URL)、凭据);
//获取TFS身份管理服务
IIdentialManagementService identityManagementService=currentCollection.GetService();
//查找要模拟的用户
TeamFoundationIdentity=identityManagementService.ReadIdentity(IdentitySearchFactor.AccountName、用户名、MembershipQuery.None、ReadIdentityOptions.None);
//模拟开放集合
TfsTeamProjectCollection tfs=新的TfsTeamProjectCollection(新Uri(serverUrl)、凭据、TFSProxyCredentials、identity.Descriptor);
//例如,我们可以访问服务WorkItemStore
var workItemStore=tfs.GetService();

Tfspreview.com现在支持基本身份验证,这将完全消除IE显示。有关如何为您的tfspreview.com设置此设置,然后使用您配置的用户名和密码的详细信息,请参阅。

您可以在配置文件下配置基本身份验证,也可以使用服务凭据。这完全取决于你需要什么样的许可。基本身份验证在用户帐户下运行,而服务帐户具有提升的权限时,这往往是一种不好的做法

为TF服务配置基本身份验证

对于基本的用户身份验证,您应该连接到TF服务并打开您的配置文件,如图所示。您的个人资料上有一个“凭据”选项卡,可用于配置这些凭据。这对于通过API进行的每用户访问是很好的,但是如果您希望通过服务器或服务运行某些东西,则这是不好的

检索TFS服务凭据

我创建了一个名为的应用程序,它允许您检索TF服务实例的服务凭据。这与您在本地配置构建和测试服务器以对抗云时所做的相同


我希望这有帮助…

它仍然会提示ie windows询问我的凭据。执行此操作的第一个操作是­`currentCollection.GetService();`。这是正常的还是我的凭据在我的代码中不能正常工作,并且不应该做任何提示。我认为您的凭据有问题这当然是逻辑推断,但是如果我在promptCheck中输入相同的凭据,也可以检查您的域和Url