我使用以下方法在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中工作项的显示名称的任何想法
答案 0 :(得分:0)
您需要使用ReadIdentities()方法列出数组中的显示名称,以便为Sid为每个用户使用ReadIdentities返回Identity。
Identity[] UserId = IIdentityManagementService.ReadIdentities(SearchFactor.Sid, SIDS.Members, QueryMembership.None);
查看this博客和演示了解详情。此博客仍在使用IGroupSecurityService接口,但IGroupSecurityService已过时。您需要使用IIdentityManagementService或ISecurityService。