private List <string> GetSpecificObjects(
            List <string> objectsNames,
            StringBuilder allObjectsFilter,
            bool includeValidObjectsOnly)
        {
            DirectoryEntry de;
            List <string>  specificObjects = new List <string>();

            try
            {
                SearchSpecificObjects(allObjectsFilter, objectsNames);

                if (DirectorySearchSession.LastResults != null)
                {
                    foreach (SearchResult Object in DirectorySearchSession.LastResults)
                    {
                        de = Object.GetDirectoryEntry();

                        if (!includeValidObjectsOnly || IsValidADsObject(de.NativeObject))
                        {
                            specificObjects.Add(
                                DirectoryServicesUtils.GetObjectAccountName(de, AccountNameProperty));
                        }
                    }
                }
            }
            catch (Exception exc)
            {
                Log.WriteWarning("Failed to obtain domain objects. Details : {0}", exc.Message);
            }

            return(specificObjects);
        }
Beispiel #2
0
        protected void GetUserMembership(IADsGroup group, string userName, string propertyName, List <string> userGroups)
        {
            try
            {
                string userAccountName;
                string groupAccountName = String.Empty;

                IADsMembers membership = group.Members();

                foreach (object obj in membership)
                {
                    userAccountName = DirectoryServicesUtils.GetObjectAccountName((IADs)obj, propertyName);

                    if (StringUtil.CompareIgnoreCase(userAccountName, userName))
                    {
                        if (!StringUtil.IsStringInitialized(groupAccountName))
                        {
                            groupAccountName = DirectoryServicesUtils.GetObjectAccountName(group, propertyName);
                        }

                        userGroups.Add(groupAccountName);
                    }
                }
            }
            catch (Exception exc)
            {
                Log.WriteWarning("Failed to obtain user membership. Details : {0}", exc.Message);
            }
        }
        public static string[] GetUserGroups(string fullAccountName)
        {
            string serverName;
            string userName;

            if (DirectoryServicesUtils.ParseAccountName(fullAccountName, out serverName, out userName))
            {
                return(GetUserGroups(serverName, userName));
            }
            else
            {
                return(new string[] { });
            }
        }
Beispiel #4
0
        public BaseDirectoryServices(string serverName)
        {
            m_serverName = serverName;

            if (DirectoryServicesUtils.IsLocalMachine(serverName))
            {
                m_directorySearchRoot =
                    new DirectoryEntry(DirectoryServicesUtils.LOCAL_SEARCH_PROTOCOL + serverName + ",Computer");
            }
            else
            {
                m_directorySearchRoot =
                    new DirectoryEntry(DirectoryServicesUtils.DOMAIN_SEARCH_PROTOCOL + serverName);
            }
        }
Beispiel #5
0
        protected void GetUserMembership(IADsUser user, string propertyName, List <string> userGroups)
        {
            try
            {
                IADsMembers membership = user.Groups();

                foreach (IADsGroup group in membership)
                {
                    userGroups.Add(DirectoryServicesUtils.GetObjectAccountName(group, propertyName));
                }
            }
            catch (Exception exc)
            {
                Log.WriteWarning("Failed to obtain user membership. Details : {0}", exc.Message);
            }
        }
        private static BaseDirectoryServices GetServerDS(string serverName)
        {
            BaseDirectoryServices serverDS;

            m_serverDSCache.TryGetValue(serverName, out serverDS);

            if (serverDS == null)
            {
                if (DirectoryServicesUtils.IsLocalMachine(serverName))
                {
                    serverDS = new LocalDirectoryServices(serverName);
                }
                else
                {
                    serverDS = new DomainDirectoryServices(serverName);
                }

                m_serverDSCache.Add(serverName, serverDS);
            }

            return(serverDS);
        }
        private List <string> GetSpecificObjects(
            string objectSchemaClassName,
            List <string> objectNames,
            bool includeValidObjectsOnly)
        {
            List <string> specificObjects = new List <string>();

            SearchSpecificObjects(
                new StringBuilder("objectclass=" + objectSchemaClassName),
                objectNames);

            if (DirectorySearchSession.LastResults != null)
            {
                foreach (DirectoryEntry Object in DirectorySearchSession.LastResults)
                {
                    if (!includeValidObjectsOnly || IsValidADsObject(Object.NativeObject))
                    {
                        specificObjects.Add(DirectoryServicesUtils.GetObjectAccountName(Object, null));
                    }
                }
            }

            return(specificObjects);
        }