如何使用 Microsoft Graph SDK 获取 AD 用户组列表以及 AD 用户

How can I get a list of AD user groups along with AD user with Microsoft Graph SDK

代码:

            var users = await graphClient.Users
            .Request()
            .Filter("startswith(userPrincipalName, '" + userPrincipalName + "')")
            .Select(u => new { u.Id, u.OtherMails, u.DisplayName, u.UserPrincipalName, u.MemberOf })
            .GetAsync();

returns MemberOf 为空。我知道我可以做后续的:

var groups = await graphClient.Users[user.Id].MemberOf.Request().GetAsync();

但我宁愿 return 一个包含所有信息的 Microsoft.Graph.User class 类型。

memberOf 不是 属性 而是关系,您可以使用扩展查询参数获取关系的数据。请参阅下面的 API 调用及其结果。

https://graph.microsoft.com/v1.0/users?$filter=startswith(userPrincipalName,'Shiva@nishantsingh.live')&$select=id, displayName, memberOf&$expand=memberOf

所以,使用类似这样的代码。

var users = await graphClient.Users
            .Request()
            .Filter("startswith(userPrincipalName, '" + userPrincipalName + "')")
            .Select(u => new { u.Id, u.OtherMails, u.DisplayName, u.UserPrincipalName, u.MemberOf })
            .Expand(d => d.memberOf)
            .GetAsync();