1

我的目标是获取我的用户所在的团队项目中用户的全部信息。然后我想获取用户的电子邮件地址并将他们分配的任务的 ID 发送给他们。(这是一个练习)

我使用以下代码成功连接到服务器:

TfsTeamProjectCollection tfs = new TfsProjectCollection(new Uri(tfsUri));
ITeamProjectCollectionService tpcService = tfs.GetService<ITeamProjectCollectionService>();

但我不知道如何从这一点继续。

我搜索了一个解决方案,但没有找到任何好的材料。

4

2 回答 2

3

您可以使用 IIDentityManagementService 从 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));
}
于 2013-08-18T16:04:04.183 回答
2
_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中,您可以使用MembershipQueryReadIdentityOptions参数来获取有关用户的更多信息。

于 2014-12-24T01:27:52.893 回答