我正在尝试使用 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会使其成为无效过滤器。
我在这里做错了什么;是否可以?
我想在我的项目中使用 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
我正在尝试构建一个查询,在其中传递 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,但我还不确定是否可能。