TFS工作项中具有相同显示名称的多个用户

时间:2016-03-28 16:02:18

标签: tfs tfs2013 azure-devops tfs-workitem

我使用以下方法在TFS中获取工作项。

WorkItem workItem = workItemClient.getWorkItemByID(workItemId);

现在获得'Created By'&& '已分配给',我正在使用fieldCollection

FieldCollection fieldCollection = workItem.getFields();
Field createdBy = fieldCollection.getField("Created By");
Field assignedTo = fieldCollection.getField("Assigned To");

上述方法总是为我提供用户的显示名称,而不是唯一的用户名(帐户名称)。

要使用用户名(帐户名称)解析显示名称,我正在查询TFS服务器

tfsUser = identityManagementService.readIdentity(IdentitySearchFactor.DISPLAY_NAME, displayName, MembershipQuery.DIRECT,ReadIdentityOptions.NONE);

但是此查询会返回错误 “

  

找到了与因子值“显示名称”匹配的多个身份

关于如何获取用户的帐户名而不是TFS中工作项的显示名称的任何想法

1 个答案:

答案 0 :(得分:0)

您需要使用ReadIdentities()方法列出数组中的显示名称,以便为Sid为每个用户使用ReadIdentities返回Identity。

Identity[] UserId = IIdentityManagementService.ReadIdentities(SearchFactor.Sid, SIDS.Members, QueryMembership.None);

查看this博客和演示了解详情。此博客仍在使用IGroupSecurityService接口,但IGroupSecurityService已过时。您需要使用IIdentityManagementService或ISecurityService。