internal ADPrincipal[] GetGroupMembers(string partitionDN, string groupDN, bool recursive) { this.Init(); GetADGroupMemberRequest getADGroupMemberRequest = new GetADGroupMemberRequest(); getADGroupMemberRequest.GroupDN = groupDN; getADGroupMemberRequest.PartitionDN = partitionDN; getADGroupMemberRequest.Recursive = recursive; GetADGroupMemberResponse aDGroupMember = this._acctMgmt.GetADGroupMember(this._sessionHandle, getADGroupMemberRequest); List <ADPrincipal> aDPrincipals = new List <ADPrincipal>(); if (aDGroupMember.Members == null) { return(new ADPrincipal[0]); } else { ActiveDirectoryPrincipal[] members = aDGroupMember.Members; for (int i = 0; i < (int)members.Length; i++) { ActiveDirectoryPrincipal activeDirectoryPrincipal = members[i]; ADPrincipal aDPrincipal = new ADPrincipal(); this.PopulateADPrincipalFromWebServiceData(activeDirectoryPrincipal, aDPrincipal); aDPrincipals.Add(aDPrincipal); } return(aDPrincipals.ToArray()); } }
private void PopulateADPrincipalFromWebServiceData(ActiveDirectoryPrincipal inputWSPrincipal, ADPrincipal principalToPopulate) { principalToPopulate.SID = new SecurityIdentifier(inputWSPrincipal.SID, 0); principalToPopulate.SamAccountName = inputWSPrincipal.SamAccountName; this.PopulateADObjectFromWebServiceData(inputWSPrincipal, principalToPopulate); }