分配许可证(Microsoft Graph API)

3
我正在尝试通过Graph API在C#中分配许可证。
您可以通过以下链接查看详细信息:https://learn.microsoft.com/en-us/graph/api/user-assignlicense?view=graph-rest-1.0 需要传递的参数如下:
- addLicenses (AssignedLicense collection):指定要添加的许可证的assignedLicense对象集合。您可以通过在assignedLicense对象上设置disabledPlans属性来禁用与许可证关联的计划。 - removeLicenses (Guid collection):标识要删除的许可证的GUID集合。
以下是我的代码...
var userQuery = await client.Users
  .Request()
  .Filter("userPrincipalName eq 'xxx@xxx.de'")
  .GetAsync();
var user = userQuery.FirstOrDefault();

var skus = await client.SubscribedSkus.Request().GetAsync();

do
{
  foreach (var sku in skus)
  {

    AssignedLicense aLicense = new AssignedLicense { SkuId = sku.SkuId };

    IList<AssignedLicense> licensesToAdd = new AssignedLicense[] { aLicense };
    IList<Guid> licensesToRemove = new Guid[] { };

    try
    {
      client.Users[user.Id].AssignLicense(licensesToAdd, licensesToRemove);
    }
  }
}
while (skus.NextPageRequest != null && (skus = await skus.NextPageRequest.GetAsync()).Count > 0);

我不会收到错误,但它不起作用。用户没有许可证... 最初的回答。

什么是 SubscribedSkus - Kiquenet
1个回答

3
我认为您在这里忘记了一些内容:

最初的回答:

client.Users[user.Id].AssignLicense(licensesToAdd, licensesToRemove);

我认为应该这样做:

最初的回答
await client.Users[user.Id].AssignLicense(licensesToAdd, licensesToRemove).Request().PostAsync();

PS:

You can get the user with less code like:

var userQuery = await client.Users["xxx@xxx.de"].Request().GetAsync();

客户端的 UsersMe 有什么区别?https://github.com/microsoftgraph/msgraph-beta-sdk-dotnet/blob/a675be0a8b2c3d500596871edef38427e691aa3e/tests/Microsoft.Graph.DotnetCore.Test/Requests/Functional/UserTests.cs#L302 - Kiquenet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接