我正在尝试按照here
的说明使用MS Graph API中的AssignLicense功能。在使用SDK时,我正在查看使用
的C#示例。graphServiceClient.Me.AssignLicense
但是,graphServiceClient.Me是指已登录的用户。我在服务器端应用程序中,所以.Me是该应用程序,而不是用户,并且我看不到指定Id / UserPrincipalName的方法将请求发送给适当的用户。
关于使用GraphServiceClient时如何注入正确的id / upn的任何想法?
答案 0 :(得分:0)
设法自己解决
graphServiceClient.Users[id].AssignLicense
是可以使用的方法。.不确定如何使用upn,但是用户ID可以正常工作。
答案 1 :(得分:0)
您不能将Me
与应用程序范围一起使用(即仅应用程序的场景)。 “我”只是当前经过身份验证的用户的别名,并且由于您没有经过身份验证的用户,因此Graph无法知道您要寻址的用户。
您需要通过id
或他们的userPrincipalName
明确指定用户:
await graphClient
.Users["id"]
.AssignLicense(licensesToAdd, licensesToRemove)
.Request()
.PostAsync();
await graphClient
.Users["upn@domain.onmicrosoft.com"]
.AssignLicense(licensesToAdd, licensesToRemove)
.Request()
.PostAsync();
请注意,licensesToAdd
是List<AssignedLicense>
,而licensesToRemove
是List<Guid>