public ActiveDirectoryGroup(ADGroup aDGroup) { this.Category = aDGroup.Category; this.CN = aDGroup.CN; this.Description = aDGroup.Description; this.DistinguishedName = aDGroup.DistinguishedName; this.Domain = aDGroup.Domain; this.FirstName = aDGroup.FirstName; this.OU = aDGroup.OU.ToArray(); }
/// <summary> /// Obtiene todo los grupos pertenecientes al dominio.- /// </summary> public List<ADGroup> Groups_GetAll() { List<ADGroup> pList = null; ADGroup group = null; pList = new List<ADGroup>(); DirectoryEntry wDirectoryEntry = null; DirectorySearcher deSearch = new DirectorySearcher(_directoryEntrySearchRoot); deSearch.Filter = "(&(objectClass=group))"; deSearch.Sort.PropertyName = "sAMAccountName"; deSearch.Sort.Direction = System.DirectoryServices.SortDirection.Ascending; try { foreach (SearchResult result in deSearch.FindAll()) { wDirectoryEntry = result.GetDirectoryEntry(); //GetProperties(wDirectoryEntry, "pQuery"); if (wDirectoryEntry.Properties.Contains("sAMAccountName")) { group = new ADGroup(wDirectoryEntry); pList.Add(group); } } wDirectoryEntry.Close(); wDirectoryEntry.Dispose(); deSearch.Dispose(); return pList; } catch (Exception ex) { throw ProcessActiveDirectoryException(ex); } }
/// <summary> /// Obtiene un ADGroup que reprecenta un grupo /// </summary> /// <param name="pName"></param> /// <returns></returns> public ADGroup Group_GetByName(String pName) { string filter = string.Format("(&(ObjectClass={0})(sAMAccountName={1}))", "group", pName); DirectorySearcher deSearch = new DirectorySearcher(_directoryEntrySearchRoot); deSearch.Filter = filter; SearchResult result = deSearch.FindOne(); if (result == null) return null; DirectoryEntry directoryEntry = result.GetDirectoryEntry(); ADGroup wADGroup = new ADGroup(directoryEntry); directoryEntry.Close(); directoryEntry.Dispose(); deSearch.Dispose(); return wADGroup; }