2

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 つの属性があり、そこに優先メール アドレスが正しく含まれていることに気付きました。

多くの人々のサーバーで動作するためにこのコードが必要になるため、優先メールアドレスで「メール」変数を適切にロードできないように見えるのはなぜでしょうか。

4

2 に答える 2

2

属性名のMail代わりに使用してみてください-それは私にとってはうまくいきます。Email

また、それがうまくいかない場合は、の結果を確認してくださいmember.GetProperties()- おそらくそれはあなたに使用する正しい名前を与えるでしょう.

私にとってGetProperty("Mail")も、うまくいきました。

于 2013-11-11T17:13:55.440 に答える