gpt4 book ai didi

c# - 使用图形 API 查询 Azure AD

转载 作者:行者123 更新时间:2023-12-03 06:50:30 25 4
gpt4 key购买 nike

我正在尝试检索给定 AD 域的所有用户。虽然我已成功检索用户列表,但下一步是确定用户属于哪些组。这就是困难的地方。

步骤 1)

 var clientSecretCredential = new ClientSecretCredential(configuration.TenantId, configuration.ClientId, ClientSecret);

GraphServiceClient graphClient = new GraphServiceClient(clientSecretCredential);
return await Task.FromResult(graphClient);

这使我成功连接到 GraphClient

 var users = await graphClient.Users.Request().GetAsync();

foreach (var user in users)
{
Console.WriteLine(user.DisplayName);
}

显示用户列表(使用他们的 DisplayName)

步骤 2)

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

这让我获得了用户的组。最后我想显示实际组的名称......这就是它失败的地方。我能够迭代周围的组,但唯一可用的属性是“id”之类的东西,没有 DisplayName 属性。

如有任何帮助,我们将不胜感激。

最佳答案

您可以尝试运行示例代码吗:

var page = await graphClient
.Users[userObjectId]
.MemberOf
.Request()
.GetAsync();

var names = new List<string>();
names.AddRange(page
.OfType<Group>()
.Select(x => x.DisplayName)
.Where(name => !string.IsNullOrEmpty(name)));
while (page.NextPageRequest != null)
{
page = await page.NextPageRequest.GetAsync();
names.AddRange(page
.OfType<Group>()
.Select(x => x.DisplayName)
.Where(name => !string.IsNullOrEmpty(name)));
}

return names;

示例问题 - How to get group names of the user is a member of using Microsoft Graph API?

希望这有帮助。谢谢

关于c# - 使用图形 API 查询 Azure AD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73719399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com