我有一个TFS的扩展需要得到TFS 2017年的所有用户的列表中是否有一个API调用呢?我已经能够找到最接近的就是CoreHttpClient.getTeamMembers() REST客户端调用。但我正在寻找的东西,返回所有用户身份的列表。
谷歌搜索已经取得了一些成果对于不出现适用于2017年TFS旧版本的TFS的。
注1:这是一个现场托管TFS实例,而不是VSTS。
注2:我正在寻找一种方法来调用从前端JavaScript中的TFS扩展的代码,这个API。
谢谢!
UPDATE 2017年6月29日:见他的回答帕特里克的评论。显然,没有REST API这是从目前的TFS扩展前端调用。
有没有REST API可现在做到这一点。你必须使用旧的客户端API与ReadIdentities方法。这也适用于TFS2017。示例代码:
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("url"));
tfs.EnsureAuthenticated();
IGroupSecurityService gss = tfs.GetService<IGroupSecurityService>();
Identity SIDS = gss.ReadIdentity(SearchFactor.AccountName, "Project Collection Valid Users", QueryMembership.Expanded);
Identity[] UserId = gss.ReadIdentities(SearchFactor.Sid, SIDS.Members, QueryMembership.None);
foreach (Identity user in UserId)
{
Console.WriteLine(user.AccountName);
Console.WriteLine(user.DisplayName);
}
更多详细信息,请参阅How do I get list of all users in TFS 2013并且也有许多人在谷歌。
它使用.NET client libraries for TFS,你可以通过导入NuGet包到您的Visual Studio项目使用这些方法。这也与TFS2017工作。