2012-12-18 22 views
5

Có cách nào để thay đổi hình ảnh hồ sơ của người dùng với tư cách là quản trị viên hay không. Tại công ty của chúng tôi, chúng tôi có kho lưu trữ trung tâm các hình ảnh của mọi người mà chúng tôi muốn sử dụng trên Cổng thông tin web TFS cho hồ sơ của họ. Tôi biết mọi người có thể làm điều đó riêng lẻ nhưng nó có thể được thực hiện trên toàn cầu cho mọi người không?Ảnh hồ sơ trong TFS 2012

Trả lời

4

TL/DR

tôi đã gửi một bản vá cho ALM Rangers Team Tools Quick Response Sample which provides profile image functionality to any TFS Administrator.


Các chi tiết

câu trả lời chính thức: không. Không có trong phiên bản hiện tại của nền tảng, nó đang được xem xét cho một bản phát hành trong tương lai.

Câu trả lời thực sự, nó có thể được thực hiện với thủ thuật api. Nó vẫn không được hỗ trợ mặc dù. Tôi đang làm việc trên một công cụ dòng lệnh. Tôi có thể chia sẻ nó sau những ngày nghỉ. Nếu bạn cần nó trước đó, mở dll webaccess trong reflector.net và bạn sẽ có thể tìm thấy mã trong câu hỏi.

Hình ảnh hồ sơ về cơ bản là thuộc tính mở rộng của đối tượng nhận dạng của người dùng.

Các dòng quan trọng là:

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

Mã để cập nhật danh tính:

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

Mã để lấy dịch vụ nhận dạng và bản sắc:

 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

hình ảnh sẽ không hiển thị cho đến khi người được nói đăng nhập vào webaccess. Chưa tìm được cách nào. Phải được thực hiện bởi tài khoản quản trị Tfs. – jessehouwing