1

通过将项目计划从 MS Project .mpp 同步到 TFS,我想同步一个字段,该字段是一个字符串,表示受项目影响的项目经理的姓名。通常,此字符串取自 TFS 中 Active Directory 的有效用户组。

我正在寻找一种获取用户标识的方法,以便查询 SQL Server 数据库。当您拥有用户名时,是否可以从 AD 获取用户 ID?这似乎是一种选择,但不是最好的。

如果有一种方法可以在同步项目经理的全名的同时捕获此字段中的用户 ID,这将是最好的选择。有什么建议么?

<FIELD name="Project Manager" refname="Custom.ProjectManager" type="String" reportable="dimension">
<HELPTEXT>The name of the project manager.</HELPTEXT>
<SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">
  <LISTITEM value="[global]\Project Collection Valid Users" />
</SUGGESTEDVALUES>
</FIELD>
4

2 回答 2

1
using System.DirectoryServices.AccountManagement;

UserPrincipal user = UserPrincipal.FindByIdentity(yourDomain, IdentityType.Name, fullName);
于 2013-07-24T21:01:03.907 回答
0

这是我坚持的解决方法。不利的一面是,只要您看到项目经理的姓名,就会显示 USERID。

工作项类型 XML 文件

    <FIELD name="Project Manager" refname="Custom.ProjectManager" type="String" reportable="dimension">
    <HELPTEXT>The name of the project manager.</HELPTEXT>
    <SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">
      <LISTITEM value="(ID='DOEJ24') John Doe " />
      <LISTITEM value="(ID='DOEJ23') Jane Doe " />
      <LISTITEM value="(ID='SMIJ03') John Smith " />
      <LISTITEM value="(ID='COSG01') George Constanza " />
      <LISTITEM value="(ID='BRAT99') Tom Brady " />
    </SUGGESTEDVALUES>
    </FIELD>

C#

    var projectManager = WorkItemStore.GetWorkItem(Convert.ToInt32(id))["Project Manager"]);
    var pmUserId = projectManager.SubString(5, 6);

通过这种方式,我可以轻松查询具有项目经理用户 ID 列的数据库。

于 2012-03-22T18:01:45.210 回答