c# | Есть ли способ получить группы, к которым принадлежит определенный пользователь, без получения имени пользователя или даже получения только его части? - PullRequest
1 голос
/ 29 апреля 2020

Как я писал в заголовке, я ищу способ получить все локальные группы, к которым принадлежит определенный пользователь, без имени пользователя или только его части, используя c#, есть ли способ сделать это?

Уже пробовали использовать коды в этом посте, Как получить группы пользователей в Active Directory? (c#, asp. net) , ни один из них не работал

        public static List<string> GetAdGroupsForUser2(string userName, string domainName = null)
        {
            var result = new List<string>();

            if (userName.Contains('\\') || userName.Contains('/'))
            {
                domainName = userName.Split(new char[] { '\\', '/' })[0];
                userName = userName.Split(new char[] { '\\', '/' })[1];
            }

            using (PrincipalContext domainContext = new PrincipalContext(ContextType.Domain, domainName))
            using (UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, userName))
            using (var searcher = new DirectorySearcher(new DirectoryEntry("LDAP://" + domainContext.Name)))
            {
                searcher.Filter = String.Format("(&(objectCategory=group)(member={0}))", user.DistinguishedName);
                searcher.SearchScope = SearchScope.Subtree;
                searcher.PropertiesToLoad.Add("cn");

                foreach (SearchResult entry in searcher.FindAll())
                    if (entry.Properties.Contains("cn"))
                        result.Add(entry.Properties["cn"][0].ToString());
            }
            MessageBox.Show("got here"); // message box not showing
            return result;
        }

Любая помощь будет оценена

...