![](/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.