1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
   | // <summary>
        /// Get All users from AD
        /// </summary>
        /// <param name="group"></param>
        /// <returns></returns>
        public List<string> GetUserGroupFromAD(string group)
        {
            group = group.Substring(group.IndexOf('\\') + 1, group.Length - group.IndexOf('\\') - 1);
            List<string> users = new List<string>();
 
            string domain = ConfigurationManager.AppSettings["Politique_LDAP"].ToString(); ;
            string domainUser = ConfigurationManager.AppSettings["Politique_DomainUserId"].ToString();
            string domainPWD = ConfigurationManager.AppSettings["Politique_DomainPWD"].ToString();
 
            DirectoryEntry searchRoot = new DirectoryEntry(domain, domainUser, domainPWD);
            DirectorySearcher searcher = new DirectorySearcher(searchRoot);
            searcher.Filter = "(sAMAccountName=" + group + ")";
            searcher.PropertiesToLoad.Add(AD_MemberOf);
            searcher.PropertiesToLoad.Add("sAMAccountName");
 
            SearchResult coll = searcher.FindOne();
 
            if(coll == null){
                return users;
            }
 
            foreach (object dn in coll.Properties["member"])
            {
                try
                {
                    DirectoryEntry de = new DirectoryEntry(String.Format("LDAP://{0}", dn), domainUser, domainPWD);
 
                    users.Add(de.Properties["sAMAccountName"].Value.ToString());
                }
                catch (Exception ex)
                {
                    Log(ex.Message, true);
                }
            }
 
 
            return users;
        } | 
Partager