से केवल सक्षम खाते प्राप्त करें मैं "डोमेन उपयोगकर्ता" समूह में सभी उपयोगकर्ताओं को प्राप्त करने के लिए सक्रिय निर्देशिका से निपटने के लिए System.DirectoryServices.AccountManagement.dll
का उपयोग कर रहा हूं।सक्रिय निर्देशिका
यह डोमेन में सभी उपयोगकर्ताओं को वापस कर रहा है लेकिन मुझे केवल सक्षम लोगों को प्राप्त करने की आवश्यकता है।
यहां कुछ नमूना कोड है:
List<string> users = new List<string>();
PrincipalContext pcContext = GetPrincipalContext();
GroupPrincipal grp = GroupPrincipal.FindByIdentity(pcContext,
IdentityType.Name,
"Domain Users");
foreach (Principal user in grp.GetMembers(true).OfType<UserPrincipal>())
{
if (user.Enabled != false)
{
users.Add(user.Name);
}
}
अन्य समूहों अच्छा काम है, लेकिन जब समूह है "डोमेन उपयोगकर्ता", Enabled
संपत्ति के मूल्य सभी उपयोगकर्ताओं के लिए false
है। इससे प्रत्येक उपयोगकर्ता के लिए और पूछताछ किए बिना सक्षम और अक्षम उपयोगकर्ताओं के बीच अंतर करना असंभव हो जाता है।
क्या आपको केवल खाता नाम चाहिए? क्या खाता प्रबंधन नामस्थान का उपयोग करने की आवश्यकता है? क्या आप नाम स्टोर करने के अलावा उपयोगकर्ता प्रिंसिपल ऑब्जेक्ट के साथ कुछ भी करते हैं? मैं केवल इसलिए पूछता हूं क्योंकि आपकी आवश्यकताओं को डायरेक्टरी सर्विसेज नेमस्पेस और डायरेक्टरीशियर का उपयोग एलडीएपी फ़िल्टर के साथ बेहतर तरीके से किया जा सकता है जैसे: (& (objectclass = user) (memberOf = CN = डोमेन उपयोगकर्ता, डीसी = कंपनी, डीसी = कॉम) (! (userAccountControl: 1.2.840.113556.1.4.803: = 2))) जो सक्षम हैं कि उस समूह के सभी उपयोगकर्ताओं को वापस कर देगा। – randcd
randcd: मैं एएम नेमस्पेस का उपयोग करना पसंद करूंगा क्योंकि यह एक बहुत ही साफ एपीआई प्रदान करता है। मैं निश्चित रूप से एलडीएपी का उपयोग कर सकता हूं, लेकिन फिर सबकुछ अधिक जटिल हो जाता है (विशेष रूप से ऐसे मामले में जहां उपयोगकर्ता केवल डोमेन उपयोगकर्ताओं का सदस्य हैं क्योंकि यह उनका प्राथमिक समूह है, क्योंकि यह उस मामले में 'सदस्य ओएफ' में सूचीबद्ध नहीं है)। – RobSiklos
फॉरएच लूप में "प्रिंसिपल" वास्तव में "उपयोगकर्ता प्रिंसिपल" होना चाहिए - "सक्षम" प्रिंसिपल ऑब्जेक्ट पर उपलब्ध एक विधि या संपत्ति नहीं है। कम से कम .NET 4.6.1 में नहीं। यह सब सिस्टम के साथ किया जा सकता है। निर्देशिका सेवा। खाता प्रबंधन नामस्थान। – DtechNet