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

3

我们正在尝试使用 TeamFoundationServer .net 控件在 c# 中验证我们托管的 TFS 服务帐户,以下是我的代码:

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

tfsServer.Authenticate();

请注意,这不是本地 TFS 服务器,而是托管在 tfspreview.com 的托管式 TFS 服务。我们尝试使用 Windows Live 帐户和备用身份验证凭据登录,但每次尝试进行身份验证时,Internet Explorer 都会在新窗口中打开并要求输入凭据。
如果我们使用 IE 提示连接,则可以工作,但我们希望存储凭据并在不每次询问凭据的情况下连接到服务器。
3个回答

1
你可以在个人资料中配置基本身份验证,也可以使用服务凭据。这取决于您需要什么类型的权限。基本身份验证是在用户帐户下运行的,这往往是不好的做法,而服务帐户具有提升的权限。
为TF Service配置基本身份验证
对于基本用户身份验证,您应该连接到TF Service并打开您的个人资料,如指示所示。您的个人资料上有一个“凭据”选项卡,可以让您配置这些凭据。这适用于通过API进行每个/用户访问,但如果您想通过服务器或服务运行事物,则不适用。

Configure basic authentication for TF Service

检索TFS服务凭据

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

Retrieve TFS Service Credentials

我希望这能帮到你...

0

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


0
你可以尝试使用基于服务器模拟的代码。
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>();

它仍然提示一个IE窗口要求我的凭据。第一个执行此操作的是currentCollection.GetService<IIdentityManagementService>();。这是正常的吗?还是我的凭据在我的代码中无法正常工作,不应该出现任何提示。 - user1655125
我认为您的凭证存在问题。 - Aghilas Yakoub
这当然是逻辑推断,但如果我在提示符中输入相同的凭据,则可以正常工作。 - user1655125
请检查您的域名和URL。 - Aghilas Yakoub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接