2

我在获取 VS2013 的 TFS 用户的 MailAddress 属性时遇到问题。以前,我使用 IGroupSecurityServiceInterface 来获取 MailAddress,但该方法现在已过时,因为 VS2012。我可以成功获得 SID,但是一旦获得,我就无法获取该特定用户的 MailAddress。任何帮助都感激不尽。

这是我的代码:

//Establish Connection to TFS
Uri _tfsUri = new Uri("http://tfsurl:8080/tfs");
TfsConfigurationServer _tfsConfigServer = new TfsConfigurationServer(_tfsUri, new NetworkCredential("username", "password", "domain"));
_tfsConfigServer.EnsureAuthenticated();
if(!_tfsConfigServer.HasAuthenticated)
{
    Console.Out.WriteLine("Unable to authenticate");
}
IIdentityManagementService _ims = _tfsConfigServer.GetService<IIdentityManagementService>();

//Get Members of Group Interested in

IdentityDescriptor[] _membersGroup = _ims.ReadIdentity(IdentitySearchFactor.AccountName, "[DefaultCollection]\\MemberGroup", MembershipQuery.Expanded, ReadIdentityOptions.IncludeReadFromSource).Members;

//Obtain MailAddress
foreach (IdentityDescriptor _individualMember in _membersGroup)
{
     //Get SID for individual
     string _SID = _individualMember.Identifier.ToString();

     //Get MailAddress

}

////////////////更新///////////////////////////////// ////

我实际上能够通过不同的方法获取电子邮件地址:

TeamFoundationIdentity _usersGroup = _ims.ReadIdentity(IdentitySearchFactor.AccountName, "[DefaultCollection]\\MemberGroup", MembershipQuery.Expanded, ReadIdentityOptions.IncludeReadFromSource);
TeamFoundationIdentity[] _groupMembers = _ims.ReadIdentitites(_usersGroup.Members, MembershipQuery.None, ReadIdentityOptions.None);
foreach(TeamFoundationIdentity _member in _groupMembers)
{
    string _mailAddress = _member.GetAttribute("Mail", null);
}
4

0 回答 0