gpt4 book ai didi

c# - 如何使用图形服务客户端根据azure Active Directory中的组ID获取组名称

转载 作者:行者123 更新时间:2023-12-03 02:09:12 24 4
gpt4 key购买 nike

我想根据我提供的对象 ID 获取组名称列表。例如,如果 id 是 5458409c-013f-40d6-8352-522654ae1422,那么我想获取该 id 的组名称,例如可以是“营销”。然而我总是回到错误的组。

这是我迄今为止的实现:

 List<AccessGroup> accessGroups = new List<AccessGroup>();

try
{
foreach(var id in group_ids)
{
var page = await graph_client.Groups[id].Members.Request().GetAsync();

string group_name = "";

group_name = page.OfType<Group>().Select(x => x.DisplayName).FirstOrDefault();

while (page.NextPageRequest != null)
{
page = await page.NextPageRequest.GetAsync();
group_name = page.OfType<Group>().Select(x => x.DisplayName).FirstOrDefault();
}

accessGroups.Add(new AccessGroup { Id = id, Name = group_name });
}
}
catch (Exception ex)
{
Logger.Warning(ex.Message);
Logger.Warning("Error getting group name from azure security groups");
throw;
}

最佳答案

看起来您想要存储每个页面的第一个成员显示名称,但是 accessGroups.Add(new AccessGroup { Id = id, Name = group_name }); 仅被调用一次。您应该将其添加到 while block 中。

如果您只想获取第一个组成员的显示名称,那么您可以尝试如下操作:

async Task GetGroupFirstMemberDisplayName()
{

var members = (await client.Groups.Request().Select(g => g.Id).Expand("members($select=displayName)").GetAsync())
.Select(g => new { GroupId = g.Id, FirstMemberDisplayName = g.Members.OfType<Group>().FirstOrDefault()?.DisplayName });

foreach (var item in members)
{
Console.WriteLine($"Group {item.GroupId} first member display name: {item?.FirstMemberDisplayName ?? ""}");
}
}

如果您只想获取所有组的显示名称,那么您可以尝试以下操作:

async Task GetGroupDisplayNames()
{

var names = (await client.Groups.Request().Select(g => g.DisplayName).GetAsync())
.Select(g => g.DisplayName);

Console.WriteLine(string.Join(", ", names));
}

关于c# - 如何使用图形服务客户端根据azure Active Directory中的组ID获取组名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73879406/

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