gpt4 book ai didi

Azure B2C 租户和图形 API、用户管理

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

这与我们使用 Azure B2C 租户进行身份验证的应用程序有关。需要获取支持过滤、分页的用户列表,并且用户必须来自特定的 TenantId。我们正在使用 Graph API SDK,即 microsoft.graph 和 microsoft.graph.Auth 包。

我已经完成的步骤

  1. 使用 ClientCredentialProvider 和 TenantId 创建图形客户端。
  2. 使用以下代码获取用户
var users = await graphClient.Users
.Request()
.Top(100)
.Filter("identities/any(c:c/issuer eq 'contoso.onmicrosoft.com')")
.Select("displayName,id,identities")
.GetAsync();

这将获取给定发行者或租户的所有用户。现在,存在一个问题,我无法使用此选项过滤用户 .Filter("identities/any(c:c/issuer eq 'contoso.onmicrosoft.com') andstartswith(displayName,'a') 即,获取显示名称以“a”开头且属于此颁发者“contoso.onmicrosoft.com”的所有用户。根据 Microsoft 的规定,Graph API 目前不支持对身份进行复杂查询。他们显示此消息 Message :不支持对属性身份进行复杂查询。

现在,我的想法仅限于将此租户的整个用户表加载到内存中的选项。我认为这不是最好的方法,因为我们会有更多的租户,而且我不知道我们可以在内存中存储多少用户。

任何对此类场景有更多了解的人,请分享您的意见。我想知道我们可以采取的各种其他替代方案。

最佳答案

正如消息所述,“不支持对属性标识进行复杂查询”,Microsoft Graph SDK 也不支持它。您只能检查 String.StartsWith() 的用户C# 中的方法。

var users = await graphClient.Users
.Request()
.Top(100)
.Filter("identities/any(c:c/issuer eq 'contoso.onmicrosoft.com')")
.Select("displayName,id,identities")
.GetAsync();

List<User> userResult = new List<User>();
foreach(var user in users)
{

if (user.displayName.StartsWith(a)) {

userResult.add(user);
}
}

关于Azure B2C 租户和图形 API、用户管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68148375/

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