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