internal static SecurityIdentifier[] GetServerAdmins(Server server, IDirectorySession session, Task.TaskErrorLoggingDelegate logError) { List <SecurityIdentifier> list = new List <SecurityIdentifier>(); ActiveDirectorySecurity activeDirectorySecurity = PermissionTaskHelper.ReadAdSecurityDescriptor(server, session, logError); AuthorizationRuleCollection accessRules = activeDirectorySecurity.GetAccessRules(true, false, typeof(SecurityIdentifier)); foreach (object obj in accessRules) { ActiveDirectoryAccessRule activeDirectoryAccessRule = (ActiveDirectoryAccessRule)obj; if (activeDirectoryAccessRule.ActiveDirectoryRights == ActiveDirectoryRights.GenericAll) { SecurityIdentifier item = (SecurityIdentifier)activeDirectoryAccessRule.IdentityReference; list.Add(item); } } return(list.ToArray()); }
public static ActiveDirectorySecurity ReadAdSecurityDescriptor(ADRawEntry entry, IDirectorySession session, Task.TaskErrorLoggingDelegate logError) { RawSecurityDescriptor rawSecurityDescriptor = null; return(PermissionTaskHelper.ReadAdSecurityDescriptor(entry, session, logError, out rawSecurityDescriptor)); }