Acceleratio.SPDG.Generator.AD.GetGroupsFromAD C# (CSharp) Метод

GetGroupsFromAD() публичный статический Метод

public static GetGroupsFromAD ( ) : List
Результат List
        public static List<string> GetGroupsFromAD()
        {
            List<string> retVal =new List<string>();
            try
            {
                ContextType contextType = ContextType.Domain;
                string strName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
                string domainName = strName.Split('\\')[0];

                using (PrincipalContext ctx = new PrincipalContext(contextType, domainName))
                {

                    var searchPrinciple = new GroupPrincipal(ctx);
                    searchPrinciple.IsSecurityGroup = true;

                    System.DirectoryServices.AccountManagement.PrincipalSearcher search = new PrincipalSearcher();
                    search.QueryFilter = searchPrinciple;

                    PrincipalSearchResult<Principal> results = search.FindAll();

                    StringBuilder sb = new StringBuilder();

                    foreach (GroupPrincipal groupPrincipal in results)
                    {
                        retVal.Add(groupPrincipal.Sid.Value);
                    }
                }
            }
            catch (Exception ex)
            {
                Errors.Log(ex);
            }

            return retVal;
        }