MS Graph SDK-向任何用户分配许可证

时间:2019-05-08 15:29:20

标签: c# microsoft-graph microsoft-graph-sdks

我正在尝试按照here

的说明使用MS Graph API中的AssignLicense功能。

在使用SDK时,我正在查看使用

的C#示例。
graphServiceClient.Me.AssignLicense

但是,graphServiceClient.Me是指已登录的用户。我在服务器端应用程序中,所以.Me是该应用程序,而不是用户,并且我看不到指定Id / UserPrincipalName的方法将请求发送给适当的用户。

关于使用GraphServiceClient时如何注入正确的id / upn的任何想法?

2 个答案:

答案 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();

请注意,licensesToAddList<AssignedLicense>,而licensesToRemoveList<Guid>