繁体   English   中英

使用C#从团队项目中获取用户列表并在TFS 2012中

[英]getting user list from the team project your in at TFS 2012 using C#

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

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

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

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

我在寻找解决方案,但找不到任何好的材料。

您可以使用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));
    }
_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参数来获取有关用户的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM