API を使用して、TFS 2012 で特定のユーザーの電子メール アドレスを取得しようとしています。プロファイル セクションでユーザーの優先メール アドレスを設定しました。私はオンラインで多くの検索を行い、次のコードを持っています。
var userId = "myUserId";
var collection = new TfsTeamProjectCollection(tfsUri, tfsCerd);
var managementService = collection.GetService<IIdentityManagementService>();
var member =
managementService
.ReadIdentity(
IdentitySearchFactor.AccountName,
userId,
MembershipQuery.Direct,
ReadIdentityOptions.ExtendedProperties);
var emailAddress = member.GetAttribute("Mail", null)
このコードは成功と失敗の両方です。指定されたユーザーを正常に取得するという点で成功です。ただし、問題は Email 属性が空白であることです。メンバー変数を分析したところ、「メール」属性がそこにリストされていて、それが空であることに気付きました。その後、"ConfirmedNotificationAddress" と "CustomNotificationAddress" という 2 つの属性があり、そこに優先メール アドレスが正しく含まれていることに気付きました。
多くの人々のサーバーで動作するためにこのコードが必要になるため、優先メールアドレスで「メール」変数を適切にロードできないように見えるのはなぜでしょうか。