Używam interfejsu Graph API do wysyłania zapytań do usługi Azure Active Directory przy użyciu projektu Microsoft.WindowsAzure.ActiveDirectory.GraphHelper
jako bazy dla moich żądań.Pobieranie grup członków w Pomocniku wykresów Azure AD
W konkretnym przypadku użycia mam grupę zawierającą kilkuset użytkowników, a także kilka grup. Szukam załadować członków grupy tej nadrzędnej grupy. Starałem się zwrócić obciążenia nieruchomości members
:
DirectoryService.LoadProperty(school, "members");
mam tylko 100 wyników, z których wszystkie są użytkownikami (ponownie, istnieje ponad 100 użytkowników w grupie).
Próbowałem wykonać DataServiceQuery
ale nie obsługuje takiej operacji:
var groups = DirectoryService.groups;
Group parentGroup = DirectoryService.groups.Where(it => (it.objectId == parentGroupId)).SingleOrDefault();
groups = (DataServiceQuery<Group>)groups.Where(group => group.memberOf.Contains(parentGroup));
To nie na trzecim wierszu mówi, że wyrażenie nie jest obsługiwany.
Obecnie jedynym rozwiązaniem mogę myśleć się ładuje ALL z grup, bieganie LoadPropert(entity, 'memberOf', null)
na każdym jeden, a następnie sprawdzenie każdego z nich, czy jest członkiem parentGroup (faktycznie, jeden z kilka takich grup ParentGroups). Uwaga - Umieszczam null
w przestrzeni continuationToken
, ponieważ te grupy powinny być członkami tylko jednej grupy nadrzędnej.
To jest strasznie nieefektywne, ale nie mogę znaleźć innego sposobu!
Czy istnieje inny sposób robienia tego, co próbuję zrobić?
Ta obsada to paskudna robota, która zajęła mi wiele dni.Wykres zwraca kolekcje MemberOf i Members, które są puste, dopóki nie wykonasz wzorca pobierania w kodzie AzureADSamples. –