私の目標は、TFS でユーザー全体の電子メール アドレス全体を取得することです。最終的にユーザーの SID リストを取得することに成功しましたが、SID を取得するグループにグループがあり、それにアクセスする方法がわからないため、問題ないと思います。これが私のコードの重要な部分です。ここでその方法を知りたいです。
TeamFoundationIdentity[] projectGroups = _ims.ListApplicationGroups(projectUri, ReadIdentityOptions.None);
Dictionary<IdentityDescriptor, object> descSet = new Dictionary<IdentityDescriptor, object>(IdentityDescriptorComparer.Instance);
foreach (TeamFoundationIdentity projectGroup in projectGroups)
{
descSet[projectGroup.Descriptor] = projectGroup.Descriptor;
}
// Expanded membership of project groups
projectGroups = _ims.ReadIdentities(descSet.Keys.ToArray(), MembershipQuery.Expanded, ReadIdentityOptions.None);
// Collect all descriptors
foreach (TeamFoundationIdentity projectGroup in projectGroups)
{
foreach (IdentityDescriptor mem in projectGroup.Members)
{
TeamFoundationIdentity[] _identities = _ims.ReadIdentities(new IdentityDescriptor[] {mem}, MembershipQuery.Expanded, ReadIdentityOptions.None);
foreach(TeamFoundationIdentity id in _identities)
{
//the sid
Console.WriteLine(id.Descriptor.Identifier);
}
}
}
}