2017-06-21 105 views
0

我有一個TFS擴展需要獲取TFS 2017中所有用戶的列表。是否有API調用?我能找到的最接近的是CoreHttpClient.getTeamMembers() REST客戶端調用。但我正在尋找返回所有用戶身份列表的內容。是否有SDK API或REST API調用來從TFS 2017獲取所有用戶?

谷歌搜索已經取得了一些成果對於不出現適用於2017年TFS

注1老版本的TFS的:這是一個現場託管TFS實例,而不是VSTS。

注2:我正在尋找一種方法從TFS擴展的前端JavaScript代碼中調用此API。

謝謝!

更新06/29/2017:請參閱帕特里克在他的回答中的評論。顯然,目前沒有可從TFS擴展前端調用的REST API。

回答

1

現在沒有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。

+0

我需要從TFS擴展中進行此調用;是否可以從前端JavaScript代碼中調用該API?我已經爲我的問題添加了一個解釋性說明來澄清。謝謝你的時間! – broAhmed

+0

阻止我接受這個答案的唯一原因是我需要從前端JavaScript代碼中調用API :( – broAhmed

+1

Hi @broAhmed,通過更多的信息和API後。不幸的是,它仍然無法做到這一點前端JavaScript代碼現在:(你可以使用客戶端API,Powershell,查詢數據庫,而不是Rest API,你可以添加一個[uservocie](https://visualstudio.uservoice.com/forums/330519-team - 服務),TFS PM會好心檢討你的建議 –

相關問題