2010-03-23 7 views
6

मेरे पास उपयोगकर्ता की सुरक्षा पहचानकर्ताओं की एक सूची है और मुझे उपयोगकर्ता प्रिंसिपलनाम की एक सूची प्राप्त करने की आवश्यकता है ... क्या कोई तरीका है कि मैं इसे उपयोगकर्ताओं को लोड करने के बिना प्राप्त कर सकता हूं DirectoryEntry और उपयोगकर्ता प्रिंसिपलनाम संपत्ति में खींच रहा हूं?किसी उपयोगकर्ता के एसआईडी को देखते हुए, मैं अपने उपयोगकर्ता प्रिंसिपलनाम कैसे प्राप्त करूं?

मैं क्योंकि यह एक बहुत

उत्तर

-1

आप LookupAccountSid() पद्धति का उपयोग करके Win32 के लिए बाहर कॉल करने के लिए प्राप्त कर सकते हैं किया जाता है सबसे कारगर विधि संभव की जरूरत है। उस पृष्ठ पर कुछ नमूना कोड है जो मैंने लिंक किया है जो एक साधारण उदाहरण दिखाता है।

6

यदि आप .NET 3.5 पर हैं, तो इस उत्कृष्ट एमएसडीएन आलेख Managing Directory Security Principals in the .NET Framework 3.5 देखें।

यह .NET 3.5 के System.DirectoryServices.AccountManagement नामस्थान की नई उन्नत खोज क्षमताओं को दिखाता है।

एक अच्छी सुविधा FindByIdentity विधि है, जो आपको पहचान के आधार पर उपयोगकर्ता (या समूह) खोजने की अनुमति देती है - चाहे वह उपयोगकर्ता का मूल नाम, विशिष्ट नाम, एक GUID या SID है - यह बस काम करेगा :

UserPrincipal user = 
    UserPrincipal.FindByIdentity(principalContext, 
           IdentityType.Sid, (value)); 

आपको उचित प्रारूप में एसआईडी प्रदान करना सुनिश्चित करना होगा - विवरण के लिए एमएसडीएन दस्तावेज़ देखें।

एक बार जब आप उपयोगकर्ता प्रिंसिपल वस्तु है, बस अपने उपयोगकर्ता प्रिंसिपल नाम:

if(user != null) 
{ 
    string upn = user.UserPrincipalName; 
} 

लेख के लिए नमूना कोड भी दो अतिरिक्त सहायक तरीकों FindByIdentityGuid और FindByIdentitySid प्राप्त करने के लिए आप के लिए क्या चाहिए, तो है !

इसे जांचें और इसका उपयोग करें।

+0

दुर्भाग्य से मैं .NET 2.0 पर फंस गया हूं, लेकिन यह जानना अच्छा है कि जब हम अपग्रेड करते हैं तो यह अस्तित्व में है। धन्यवाद –

संबंधित मुद्दे

 संबंधित मुद्दे