在我的Team Foundation Server中,我有一个包含Team Project的集合.该团队项目有几个贡献者.以下代码行获得该项目的所有贡献者:
TfsTeamProjectCollection collection = new TfsTeamProjectCollection(new Uri("http://tfs:8080/tfs/CollectionName"));
IGroupSecurityService groupSecurityService = collection.GetService<IGroupSecurityService>();
Identity contributors = groupSecurityService.ReadIdentity(SearchFactor.AccountName, "[ProjectName]\\Contributors", QueryMembership.Expanded);
Identity[] members = groupSecurityService.ReadIdentities(SearchFactor.Sid, contributors.Members, QueryMembership.None);
Run Code Online (Sandbox Code Playgroud)
成员中的每个Identity 都有一个Property MailAddress,在我的例子中等于string.Empty.
我在哪里管理这些邮件地址?
我的第一个想法是在开始 - >管理工具 - >计算机管理 - >用户中查看用户
我选择了其中一个用户并打开了他的属性.我以为TFS可能会有一个电子邮件属性.但我找不到一个.
然后我打开了TFS管理控制台,查找了组成员资格并导航到其中一个用户.也无法编辑属性.
有谁知道在哪里设置该电子邮件地址?
好问题!有一个TFS作业计划每小时运行一次,以根据Active Directory中的详细信息更新存储在TFS中的安全身份信息.其中一些信息包括显示名称,安全标识符(SID),AD专有名称和电子邮件地址等.您可以通过查看tbl_security_identity_cache
配置数据库中的表来查找此详细信息缓存.
警告: 查询或更改数据库会使您无法获得Microsoft的支持.除非Microsoft支持代表在有效支持案例的上下文中指示,否则建议您不要这样做.您实际上是通过使用TFS SDK来获取此信息.
如果您的TFS环境不在Active Directory环境中,那么它将尝试从运行TFS的本地计算机同步信息.它没有关于要使用的电子邮件地址的详细信息,因此将留空.
从TFS 2010之后的下一版TFS开始,每个用户都可以使用Team Web Access在其配置文件中更新其通知电子邮件地址.