c# - 分配许可证(Microsoft Graph API)
问题描述
我正在尝试通过 Graph API 在 C# 中分配许可证。
https://docs.microsoft.com/en-us/graph/api/user-assignlicense?view=graph-rest-1.0
参数:
addLicenses (AssignedLicense 集合)
指定要添加的许可证的assignedLicense 对象的集合。您可以通过在分配的许可证对象上设置 disabledPlans 属性来禁用与许可证关联的计划。
removeLicenses(Guid 集合)
标识要删除的许可证的 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);
我没有收到错误,但它不起作用。用户没有许可证...
解决方案
我想你在这里忘记了一些东西:
client.Users[user.Id].AssignLicense(licensesToAdd, licensesToRemove);
我认为应该是:
await client.Users[user.Id].AssignLicense(licensesToAdd, licensesToRemove).Request().PostAsync();
PS:
您可以使用更少的代码获取用户,例如:
var userQuery = await client.Users["xxx@xxx.de"].Request().GetAsync();
推荐阅读
- java - java中的类、接口或枚举预期错误
- ios - 以前删除的约束在 Xcode 9.4 中显示为冲突
- angular - Angular flexLayout 组件重叠
- selenium - 我已配置 Selenium Cucumber Maven 项目并在执行 runner.TestRunnerTest_Test.java 文件时出现初始化错误
- ios - 如何识别 UITableView 前导和尾随滑动操作 (ios 11) 的当前活动位置?
- azure - 带有 Github 的 Azure Databricks
- symfony - 问:[Symfony 4] 我如何从我的控制器使用会话访问我的表单数据?
- reactjs - 反应应用。npm run build 后出现致命错误
- azureservicebus - System.TimeoutException:在将消息调度到 Azure 服务总线时间歇性发生操作未在分配的时间内完成
- java - Baeldung:maven 不可解析的父级