使用C#从TFS 2012中的团队项目中获取用户列表
本文关键字:项目 获取 用户 列表 团队 TFS 2012 使用 | 更新日期: 2023-09-27 18:28:00
我的目标是获取我的用户所在的团队项目中用户的全部信息。然后我想获取用户的电子邮件地址,并向他们发送分配任务的id。(这是一次演习)
我使用以下代码成功连接到服务器:
TfsTeamProjectCollection tfs = new TfsProjectCollection(new Uri(tfsUri));
ITeamProjectCollectionService tpcService = tfs.GetService<ITeamProjectCollectionService>();
但我不知道如何从这一点继续下去。
我寻找解决方案,但没有找到任何好的材料。
您可以使用IIDenityManagementService从TFS Api检索(所有)用户。
IIdentityManagementService identityManagementService = tpcService.GetService<IIdentityManagementService>();
TeamFoundationIdentity[][] identities =
IdentityManagementService.ReadIdentities(
IdentitySearchFactor.AccountName,
new[] { "Project Collection Valid Users" },
MembershipQuery.Expanded,
ReadIdentityOptions.ExtendedProperties);
然后打印出所有的电子邮件
foreach (var user in identities) {
Console.WriteLine(user.GetAttribute("Mail", null));
}
_identityManagementService = _collection.GetService<IIdentityManagementService2>();
var validUsers = _identityManagementService.ReadIdentities(IdentitySearchFactor.AccountName, new[] { "Project Collection Valid Users" }, MembershipQuery.Expanded, ReadIdentityOptions.None)[0][0].Members;
var users = _identityManagementService.ReadIdentities(validUsers, MembershipQuery.None, ReadIdentityOptions.None).Where(x => !x.IsContainer).ToArray();
users
将保存简单的对象,检查调试中的对象以查看可用的属性。在第二个ReadIdentities
中,您可以使用MembershipQuery
和ReadIdentityOptions
参数来获取有关用户的更多信息。