如何从 Team Foundation 获取工作项的用户帐户名?
How to get user AccountName for WorkItem from TeamFoundation?
我正在使用以下代码从 TFS 获取工作项:
private static List<WorkItem> GetTfsWorkItems(string projectName)
{
Uri URI = new Uri("...", UriKind.Absolute);
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(URI);
WorkItemStore store = new WorkItemStore(tpc);
string query = $@"SELECT *
FROM WorkItems
WHERE [System.TeamProject] = '{projectName}'";
return store.Query(query).Cast<WorkItem>().ToList();
}
WorkItem 有字段 "CreatedBy" 和 "ChangedBy",这两个字段都是带有用户 DisplayName 的字符串。
我正在寻找获取用户的 AccountName(或 Sid)而不是它的方法。提前致谢!
无法直接获取帐户名。具有 CreatedBy/ChangedBy 字段等用户名值的字段存储在 TFS 数据库中作为对身份的引用,而不仅仅是显示名称。
但是不支持按显示名称查询帐户列表。作为解决方法,您必须深入了解帐户列表并将显示名称与身份相匹配。该身份有您的 AccountName。
在TeamFoundationIdentity
的帮助下,您可以得到您所需要的。请查看以下教程,了解更多详情:
- TFS get user by name
- 仅使用
显示名称
- Get TFS User List (Mail, Sid, Account, Domain)(包括TFS中所有Identity的概念)
我正在使用以下代码从 TFS 获取工作项:
private static List<WorkItem> GetTfsWorkItems(string projectName)
{
Uri URI = new Uri("...", UriKind.Absolute);
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(URI);
WorkItemStore store = new WorkItemStore(tpc);
string query = $@"SELECT *
FROM WorkItems
WHERE [System.TeamProject] = '{projectName}'";
return store.Query(query).Cast<WorkItem>().ToList();
}
WorkItem 有字段 "CreatedBy" 和 "ChangedBy",这两个字段都是带有用户 DisplayName 的字符串。 我正在寻找获取用户的 AccountName(或 Sid)而不是它的方法。提前致谢!
无法直接获取帐户名。具有 CreatedBy/ChangedBy 字段等用户名值的字段存储在 TFS 数据库中作为对身份的引用,而不仅仅是显示名称。
但是不支持按显示名称查询帐户列表。作为解决方法,您必须深入了解帐户列表并将显示名称与身份相匹配。该身份有您的 AccountName。
在TeamFoundationIdentity
的帮助下,您可以得到您所需要的。请查看以下教程,了解更多详情:
- TFS get user by name
- 仅使用 显示名称
- Get TFS User List (Mail, Sid, Account, Domain)(包括TFS中所有Identity的概念)