2012-09-28 8 views
5

नहीं सहेज रहे हैं, मैं सभी एडी छवियों को सभी एडी छवियों में सेट करने के लिए एक छोटी सी स्क्रिप्ट लिखने की कोशिश कर रहा हूं, मैंने आईएलएसपी में कुछ कूदते हुए पाया और टीएफएस सर्वर का उपयोग करके क्या सेट करना है एपीआई, हालांकि कोड को थोड़ा अलग होना चाहिए क्योंकि मैं इसके बजाय क्लाइंट एपीआई का उपयोग कर रहा हूं।एपीआई उपयोगकर्ताओं को अपडेट करने के लिए एपीआई - पहचान विस्तारित गुण

मेरे पास नीचे दिया गया कोड सफलतापूर्वक टीएफएस में सभी उपयोगकर्ताओं के माध्यम से पुन: प्रयास कर सकता है, उन्हें एडी में देख सकता है, थंबनेल पकड़ सकता है, संपत्ति को टीएफएस पहचान पर सेट कर सकता है। लेकिन मैं अपने जीवन के लिए टीएफएस में वापस बचाने के लिए विस्तारित संपत्ति प्राप्त नहीं कर सकता।

कोड अपवाद नहीं है, लेकिन संपत्ति उस मूल्य पर सेट नहीं है जब मैं इसे अगली बार चलाता हूं।

क्या कोई क्लाइंट एपीआई के माध्यम से विस्तारित गुणों को सहेजने का तरीका जानता है?

Microsoft.TeamFoundation.Client.TeamFoundationServer teamFoundationServer = new Microsoft.TeamFoundation.Client.TeamFoundationServer("{URL TO TFS}"); 

FilteredIdentityService service = teamFoundationServer.GetService<FilteredIdentityService>(); ; 
IIdentityManagementService2 service2 = teamFoundationServer.GetService<IIdentityManagementService2>(); 

foreach (var identity in service.SearchForUsers("")) 
{ 
    var user = UserPrincipal.FindByIdentity(new PrincipalContext(ContextType.Domain), identity.UniqueName); 
    if (user == null) continue; 
    var de = new System.DirectoryServices.DirectoryEntry("LDAP://" + user.DistinguishedName); 
    var thumbNail = de.Properties["thumbnailPhoto"].Value as byte[]; 

    identity.SetProperty("Microsoft.TeamFoundation.Identity.CandidateImage.Data", thumbNail); 
    identity.SetProperty("Microsoft.TeamFoundation.Identity.CandidateImage.UploadDate", DateTime.UtcNow); 

    service2.UpdateExtendedProperties(identity); 
} 

उत्तर

7

कुछ अतिरिक्त गुण सेट करने के लिए इसे समझ लिया गया।

Microsoft.TeamFoundation.Client.TeamFoundationServer teamFoundationServer = new Microsoft.TeamFoundation.Client.TeamFoundationServer("http://urltotfs"); 

FilteredIdentityService service = teamFoundationServer.GetService<FilteredIdentityService>(); ; 
IIdentityManagementService2 service2 = teamFoundationServer.GetService<IIdentityManagementService2>(); 

foreach (var identity in service.SearchForUsers("")) 
{ 
    var user = UserPrincipal.FindByIdentity(new PrincipalContext(ContextType.Domain), identity.UniqueName); 
    if (user == null) continue; 
    var de = new System.DirectoryServices.DirectoryEntry("LDAP://" + user.DistinguishedName); 
    var thumbNail = de.Properties["thumbnailPhoto"].Value as byte[]; 

    identity.SetProperty("Microsoft.TeamFoundation.Identity.Image.Data", thumbNail); 
    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); 

    service2.UpdateExtendedProperties(identity); 
} 
संबंधित मुद्दे