我一直在研究如何使用Microsoft Graph API(nuget上可用的dotnet/C#庫)從Azure AD組添加(以及稍後刪除)用戶。MS Graph API C#將用戶添加到組
無視一切圍繞得到一個連接GraphServiceClient
等我想代碼非常相似,下面的示例,沒有得到任何異常(表明一切都很好),但是當我拿到小組再次通過API,它還沒有任何成員!
有趣的(順便說一句),當我問memberOf
財產user
對象上,並告訴它展開它,它回來了空仍。
var user = await client.Users[userPrincipalName]
.Request()
.Select("id,memberOf")
.Expand("memberOf")
.GetAsync();
var group = await client.Groups[groupId]
.Request()
.Select("members")
.Expand("members")
.GetAsync();
group.Members.Add(user);
await client.Groups[groupId].Request().UpdateAsync(group);
// userPrincipalName => "[email protected]"
// groupId => the object GUID for the group
有沒有人知道我在做什麼錯在這裏?我曾經想出這個代碼的文檔都是基於鏈接到以下文件:
而且,我試圖風格的辦法對解決方案建議在這裏設置許可證用戶:
Assign user license via Graph API
像往常一樣,感謝您的幫助。
彼得
附加
我也試着戳周圍的圖形API中尋找潛在的更新.Members
屬性/資源,而不是組本身:
await client.Groups[groupId].Members.Request(). // <-- Only has GetAsync()
但它只有GetAync()
方法可用。
更新基於答案
var usersGroups = await client.Users[userPrincipalName].MemberOf.Request().GetAsync();
if (!usersGroups.Any(g => g is Group && g.Id == groupId))
{
// User is not a member of the group, add them.
var user = await client.Users[userPrincipalName].Request().Select("id").GetAsync();
await client.Groups[groupId].Members.References.Request().AddAsync(user);
}
我基於答案添加上面的代碼段,因爲我認爲它簡潔地回答關於增加成員問題。
感謝南禹的回答。
我從來沒有見過這個「GroupService」,但其他的東西似乎有意義/工作! :) – peteski
對不起,我以爲你使用的是https://github.com/microsoftgraph/aspnet-snippets-sample。在該代碼示例中,有一個GroupService類。如果你沒有使用該代碼示例。你可以使用IGroupMembersCollectionWithReferencesPage成員=等待graphClient.Groups [id] .Members.Request()。GetAsync();獲得小組成員。請檢查編輯答案。 –
對不起,代碼示例如下:https://github.com/microsoftgraph/aspnet-snippets-sample –