【问题标题】:getting user list from the team project your in at TFS 2012 using C#使用 C# 从 TFS 2012 的团队项目中获取用户列表
【发布时间】:2013-08-20 05:27:51
【问题描述】:

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

我成功连接到服务器,代码如下:

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

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

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

【问题讨论】:

    标签: c# tfs


    【解决方案1】:

    您可以使用 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));
    }
    

    【讨论】:

    • 嗨,理查德!你能解释一下什么是“用户”吗?你能解释一下你是如何实现的吗?
    • 我已经编辑了我的答案。希望你现在得到它。用户是 TeamFoundationIdentity。
    【解决方案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 参数来获取有关用户的更多信息。

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 2016-09-09
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      相关资源
      最近更新 更多