[C#] الاستعلام عن أد للعثور على جميع مجموعات المستخدم - مفقود مجموعة واحدة


Answers

Question

لقد التعليمات البرمجية التالية الاستعلام أد باستخدام DirectorySearcher للحصول على كافة المجموعات الإعلانية لمستخدم.

        List<string> Groups = new List<string>();

        //initialize the directory entry object 
        DirectoryEntry dirEntry = new DirectoryEntry(ldapPath);

        //directory searcher
        DirectorySearcher dirSearcher = new DirectorySearcher(dirEntry);

        //enter the filter
        dirSearcher.Filter = string.Format("(&(objectClass=user)(sAMAccountName={0}))", username);

        //get the member of properties for the search result
        dirSearcher.PropertiesToLoad.Add("memberOf");
        int propCount;
        SearchResult dirSearchResults = dirSearcher.FindOne();
        propCount = dirSearchResults.Properties["memberOf"].Count;
        string dn;
        int equalsIndex;
        int commaIndex;
        for (int i = 0; i <= propCount - 1; i++)
        {
            dn = dirSearchResults.Properties["memberOf"][i].ToString();

            equalsIndex = dn.IndexOf("=", 1);
            commaIndex = dn.IndexOf(",", 1);
            if (equalsIndex == -1)
            {
                return null;
            }
            if (!Groups.Contains(dn.Substring((equalsIndex + 1), (commaIndex - equalsIndex) - 1)))
            {
                Groups.Add(dn.Substring((equalsIndex + 1), (commaIndex - equalsIndex) - 1));
            }
        }

        return Groups;

ولكن عندما أتحقق من علامة التبويب "ميمبروف" في أد لمستخدم لدي مجموعة إضافية واحدة هي "دومين وسرس" التي لا أحصل عليها من خلال هذه الشفرة.

أيه أفكار؟ لماذا لا أحصل على "مستخدمي النطاق" في مجموعة "ميمبروف"؟