标签: graphserviceclient

如何对用户请求应用相等过滤器?

我正在尝试使用 C# 和GraphServiceClient. 我正在尝试进行过滤Mail,但无论我尝试什么格式,它都会因无效查询而被拒绝。我已经尝试了在互联网上找到的所有示例,但我似乎找不到使用服务客户端按平等方式过滤用户的示例。

我已经在 中尝试过以下操作Filter

$"eq('Mail', '{email}')"$"equal('Mail', '{email}')"$"equals('Mail', '{email}')", 和$"'Mail' eq '{email}'"

await _graphClient
    .Users
    .Request()
    .Filter(filter)
    .GetAsync();
Run Code Online (Sandbox Code Playgroud)

我确实找到了一种方法来过滤我的租户是发行人的用户,但我也需要能够搜索受邀请的用户。

var filter = $"Identities/any(id:id/Issuer eq '{TenantName}' and id/IssuerAssignedId eq '{emailAddress}')";

删除对 的相等性检查TenantName会使其成为无效过滤器。

我在这里做错了什么;是否可以?

c# azure microsoft-graph-api graphserviceclient

4
推荐指数
1
解决办法
3475
查看次数

GraphServiceClient PageItarator 失败并显示“可解析对象不包含集合属性”

我想在我的项目中使用 PageIterator,它工作得很好,直到我想从 AzureAD 中取出组成员。无论我做什么,PageIterator 都会失败并显示“The Parsable does not contains a collection property”。

List<User> users = new();
var result = await graphClient.Groups[groupId].Members.GetAsync((requestConfiguration) =>
    {
       requestConfiguration.QueryParameters.Top = 2;
       // I only do this to force pageing, will not be on final version
    });

var pageIterator = PageIterator<User, DirectoryObjectCollectionResponse>
    .CreatePageIterator(graphClient, result,
         (m) =>
         {
             users.Add(m);
             return true;
         });

await pageIterator.IterateAsync();
Run Code Online (Sandbox Code Playgroud)

我的代码强制执行 2 项。这只是因为我绝望地试图找出我的代码出了什么问题。

我对这里出了什么问题一无所知,任何帮助都会很棒。

c# asp.net-core microsoft-graph-sdks microsoft-graph-api graphserviceclient

3
推荐指数
1
解决办法
750
查看次数

在 Graph API 中使用组查询成员展开

我正在尝试构建一个查询,在其中传递 groupId 参数,并使用 C# 中的 GraphServiceClient 作为回报获取所有用户及其组成员身份。

我能够在一个查询中获取用户和组成员身份,并且能够在单独的查询中通过 groupId(但没有组成员身份)获取所有用户。但我无法将这两个查询合并为一个结果。是否可以?

这是我获取用户及其组成员身份的代码(使用带有 memberOf 的扩展):

var users = await _graphServiceClient.Users
                .Request()
                .Filter(graphFilter) // used for searching on givenName and surname
                .Select($"givenName,surname,mail,mobilePhone,id,userPrincipalName")
                .Expand(e => e.MemberOf)
                .GetAsync();
Run Code Online (Sandbox Code Playgroud)

这是我的代码,用于获取给定组中的用户:

var users = await _graphServiceClient
            .Groups[groupId] // Id of the group I want to get users from
            .Members
            .Request()
            .Select($"givenName,surname,mail,mobilePhone,id,userPrincipalName")
            //.Expand(e => e.MemberOf) // e is a DirectoryObject, so this does not compile.
            //.Expand(e => (e as Microsoft.Graph.User).MemberOf)
            //.Expand("memberOf")
            .GetAsync();
Run Code Online (Sandbox Code Playgroud)

有什么办法可以解决我的案子吗?我目前正在研究一种新方法,在从 /users 请求时是否可以在过滤器中使用 MemberOf,但我还不确定是否可能。

c# microsoft-graph-api graphserviceclient

1
推荐指数
1
解决办法
2492
查看次数