internal ADGroup[] GetAuthorizationGroups(string partitionDN, string principalDN) { this.Init(); GetADPrincipalAuthorizationGroupRequest getADPrincipalAuthorizationGroupRequest = new GetADPrincipalAuthorizationGroupRequest(); getADPrincipalAuthorizationGroupRequest.PrincipalDN = principalDN; getADPrincipalAuthorizationGroupRequest.PartitionDN = partitionDN; GetADPrincipalAuthorizationGroupResponse aDPrincipalAuthorizationGroup = this._acctMgmt.GetADPrincipalAuthorizationGroup(this._sessionHandle, getADPrincipalAuthorizationGroupRequest); List<ADGroup> aDGroups = new List<ADGroup>(); if (aDPrincipalAuthorizationGroup.MemberOf == null) { return new ADGroup[0]; } else { ActiveDirectoryGroup[] memberOf = aDPrincipalAuthorizationGroup.MemberOf; for (int i = 0; i < (int)memberOf.Length; i++) { ActiveDirectoryGroup activeDirectoryGroup = memberOf[i]; ADGroup aDGroup = new ADGroup(); this.PopulateADGroupFromWebServiceData(activeDirectoryGroup, aDGroup); aDGroups.Add(aDGroup); } return aDGroups.ToArray(); } }
private void PopulateADGroupFromWebServiceData(ActiveDirectoryGroup inputWSGroup, ADGroup groupToPopulate) { ActiveDirectoryGroupScope groupScope = inputWSGroup.GroupScope; switch (groupScope) { case ActiveDirectoryGroupScope.DomainLocal: { groupToPopulate.GroupScope = new ADGroupScope?(ADGroupScope.DomainLocal); break; } case ActiveDirectoryGroupScope.Global: { groupToPopulate.GroupScope = new ADGroupScope?(ADGroupScope.Global); break; } case ActiveDirectoryGroupScope.Universal: { groupToPopulate.GroupScope = new ADGroupScope?(ADGroupScope.Universal); break; } } ActiveDirectoryGroupType groupType = inputWSGroup.GroupType; switch (groupType) { case ActiveDirectoryGroupType.Distribution: { groupToPopulate.GroupCategory = new ADGroupCategory?(ADGroupCategory.Distribution); break; } case ActiveDirectoryGroupType.Security: { groupToPopulate.GroupCategory = new ADGroupCategory?(ADGroupCategory.Security); break; } } this.PopulateADPrincipalFromWebServiceData(inputWSGroup, groupToPopulate); }
private void PopulateADGroupFromWebServiceData(ActiveDirectoryGroup inputWSGroup, ADGroup groupToPopulate) { ActiveDirectoryGroupScope groupScope = inputWSGroup.GroupScope; switch (groupScope) { case ActiveDirectoryGroupScope.DomainLocal: { groupToPopulate.GroupScope = new ADGroupScope?(ADGroupScope.DomainLocal); break; } case ActiveDirectoryGroupScope.Global: { groupToPopulate.GroupScope = new ADGroupScope?(ADGroupScope.Global); break; } case ActiveDirectoryGroupScope.Universal: { groupToPopulate.GroupScope = new ADGroupScope?(ADGroupScope.Universal); break; } } ActiveDirectoryGroupType groupType = inputWSGroup.GroupType; switch (groupType) { case ActiveDirectoryGroupType.Distribution: { groupToPopulate.GroupCategory = new ADGroupCategory?(ADGroupCategory.Distribution); break; } case ActiveDirectoryGroupType.Security: { groupToPopulate.GroupCategory = new ADGroupCategory?(ADGroupCategory.Security); break; } } this.PopulateADPrincipalFromWebServiceData(inputWSGroup, groupToPopulate); }