2012-12-18 10 views
5

ユーザープロファイルイメージを管理者として変更する方法はありますか?私たちの会社では、TFS Webポータルで自分のプロファイル用に使用するすべての画像の中央リポジトリを用意しています。私は誰もが個別にそれを行うことができることを知っていますが、それは誰にとってもグローバルに行うことができますか?TFS 2012のプロフィール画像

答えて

4

TL/DR

私はALM Rangers Team Tools Quick Response Sample which provides profile image functionality to any TFS Administratorにパッチを提出しました。


詳細

公式の答え:なし。現在のバージョンのプラットフォームではなく、将来のリリースで検討されています。

本当の答え、それはアピトリッキーで行うことができます。しかし、まだサポートされていません。私はちょうどそれを行うコマンドラインツールに取り組んでいます。私はおそらく休日の後にそれを共有することができます。それ以前に必要な場合は、webaccess dllをreflector.netで開き、問題のコードを見つけることができます。

プロファイルイメージは基本的に、ユーザーの識別オブジェクトの拡張プロパティです。

重要な行は、次のとおりです。

  _identity.SetProperty("Microsoft.TeamFoundation.Identity.Image.Data", imageData); /* byte[] containing 90x90px png */ 
      _identity.SetProperty("Microsoft.TeamFoundation.Identity.Image.Type", "image/png"); 
      _identity.SetProperty("Microsoft.TeamFoundation.Identity.Image.Id", Guid.NewGuid().ToByteArray()); 
      _identity.SetProperty("Microsoft.TeamFoundation.Identity.CandidateImage.Data", null); 
      _identity.SetProperty("Microsoft.TeamFoundation.Identity.CandidateImage.UploadDate", null); 
      UpdateIdentity(); 

コードアイデンティティを更新する:アイデンティティサービスとアイデンティティを取得する

private static void UpdateIdentity() 
    { 
     try 
     { 
      _service.UpdateExtendedProperties(_identity); 
      _service.RefreshIdentity(_identity.Descriptor); 
     } 
     catch (PropertyServiceException) 
     { 
      //swallow; 
     } 
    } 

コード:

 var server = TfsConfigurationServerFactory.GetConfigurationServer(new Uri("http://localhost:8080/tfs")); 
     server.ClientCredentials = new TfsClientCredentials(); 
     server.ClientCredentials = new TfsClientCredentials(new WindowsCredential(new NetworkCredential(connectUser, password))); 
     server.Authenticate(); 

     _service = server.GetService<IIdentityManagementService2>(); 

     var identities = _service.ReadIdentities(IdentitySearchFactor.AccountName, 
               new[] {userToSetImageOn}, MembershipQuery.None, ReadIdentityOptions.None); 
+1

画像は表示されませんその人がwebaccessにログオンするまでまだその周りに方法を見つけていない。 Tfs管理者アカウントで実行する必要があります。 – jessehouwing

関連する問題