Beispiel #1
0
        /// <summary>
        /// Used to find All groups list in active directory
        /// </summary>
        /// <param name="directoryEntry">Domain connection</param>
        /// <returns>Returns active directory groups list</returns>
        public List <Groups> FindAllGroups(string ldapurl, Domain domainObject, List <string> activeGroupsList)
        {
            var directoryServer   = new DirectoryServerDataAccess();
            var directoryEntry    = directoryServer.DomainConnection(ldapurl, domainObject);
            var directorySearcher = new DirectorySearcher(directoryEntry);

            directorySearcher.Filter = "(objectClass=group)";
            var groupList = new List <Groups>();
            var groups    = directorySearcher.FindAll();

            foreach (SearchResult group in groups)
            {
                DirectoryEntry DE = group.GetDirectoryEntry();
                try
                {
                    if (!activeGroupsList.Contains(DE.Properties["name"].Value.ToString().ToLower()))
                    {
                        groupList.Add(new Groups
                        {
                            GroupId          = Guid.Parse(DE.Guid.ToString()),
                            GroupName        = DE.Properties["name"].Value.ToString(),
                            GroupDescription =
                                DE.Properties["description"].Value != null
                                    ? DE.Properties["description"].Value.ToString()
                                    : String.Empty
                        });
                    }
                }
                catch
                {
                }
            }
            return(groupList);
        }
Beispiel #2
0
        /// <summary>
        /// Used to delete a specific objects
        /// </summary>
        /// <param name="domainObject">Domain properties</param>
        /// <param name="objects">Object properties</param>
        /// <param name="distinguishedConnectionURL">Connection url for specific object</param>
        public void DeleteObjects(Domain domainObject, Objects objects, string distinguishedConnectionURL)
        {
            try
            {
                var dataAccessObject  = new DirectoryServerDataAccess();
                var _domainConnection = dataAccessObject.DomainConnection(distinguishedConnectionURL, domainObject);
                var dirEntry          = dataAccessObject.ObjectConnection(distinguishedConnectionURL, domainObject);

                _domainConnection.Children.Remove(dirEntry);
                //Console.WriteLine("user deleted successfully");
            }
            catch (Exception ex)
            {
                //Console.WriteLine("Message:" + ex);
            }
        }