![](/img/trans.png)
[英]Add users as group members with Microsoft Graph Api in Net Core
[英]Microsoft Graph API filter Members of Group
我正在尝试使用 Microsoft Graph API 在 Microsoft Azure Active Directory 中查询组的成员。 在我尝试过滤结果之前,我的查询一直有效。 由于过滤器子句无效,该服务会引发异常Microsoft.Graph.ServiceException
。 我了解并非所有 Microsoft Graph API 端点都支持某些过滤器子句。 我想按名称过滤Members
,最好使用in
子句。 这可能吗? 我尝试使用startswith
和in
filter 子句,但都抛出相同的异常。
GraphServiceClient client = GetGraphServiceClient(token);
const string graphProperties = "id,givenName,surname,userPrincipalName,jobTitle,department,officeLocation,businessPhones,mobilePhone,mail";
IGroupMembersCollectionWithReferencesRequest query = client.Groups[Settings.IntranetObjectID].Members.Request().Select(graphProperties);
if (!string.IsNullOrWhiteSpace(model.SearchText))
{
query.Filter($"in(displayName, '{model.SearchText}'");
}
IGroupMembersCollectionWithReferencesPage members = await query.Top(PageSize).GetAsync();
model.StaffMembers = new List<StaffMember>();
while (members.Count > 0)
{
foreach (DirectoryObject member in members)
{
if (member is User user)
{
model.StaffMembers.Add(new StaffMember(user));
}
}
if (members.NextPageRequest == null)
{
break;
}
members = await members.NextPageRequest.GetAsync();
}
在 v1.0 中不支持过滤器,但如果您使用测试版,您可以通过以下几个步骤使用显示名称进行过滤。
如果您在图形资源管理器中检查它,您将能够获得它,如下所示。
我使用过的查询 -
https://graph.microsoft.com/beta/groups/aba04a76-ee5e-4e43-a9d6-0d451e1e3e2d/members?$count=true&$select=id,businessPhones,displayName&$filter=displayName eq 'Andrea Simandi (CELA)'
由于您使用的是 SDK,因此您需要使用 Microsoft.Graph.Beta an,添加 count() 以通过在其中添加一致性属性来查询和修改标头。
但请记住,Microsoft Graph 中 /beta 版本下的 API 可能会发生变化。 不支持在生产应用程序中使用这些 API。
请仔细阅读此文档以获取更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.