2012-12-18 11 views
5

Czy istnieje sposób zmiany obrazów profili użytkowników jako administrator. W naszej firmie mamy centralne repozytorium wszystkich zdjęć, które chcemy wykorzystać w Portalu internetowym TFS dla ich profili. Wiem, że każdy może to zrobić indywidualnie, ale czy można to zrobić globalnie dla wszystkich?Obrazy profilów w TFS 2012

Odpowiedz

4

TL/DR

mam złożyła poprawkę do ALM Rangers Team Tools Quick Response Sample which provides profile image functionality to any TFS Administrator.


Details

Oficjalna odpowiedź: nr. Nie w bieżącej wersji platformy, jest rozważana na przyszłe wydanie.

Prawdziwa odpowiedź, można to zrobić za pomocą oszustwa api. Nadal nie jest obsługiwany. Pracuję nad narzędziem wiersza poleceń, które właśnie to robi. Prawdopodobnie udostępnię to po wakacjach. Jeśli potrzebujesz go wcześniej, otwórz bibliotekę webaccess w pliku reflector.net, a będziesz mógł znaleźć odpowiedni kod.

Obraz profilu jest w zasadzie rozszerzoną właściwością obiektu tożsamości użytkownika.

Ważnymi linie są:

  _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(); 

Kod zaktualizować Tożsamość:

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

kodu do pobrania z usługi tożsamość i tożsamość:

 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

obraz nie pojawi się dopóki wymieniona osoba nie zaloguje się do webaccess. Jeszcze się nie znalazłem. Musi być wykonany przez konto administratora Tfs. – jessehouwing

Powiązane problemy