我正在尝试通过Graph API在C#中分配许可证。
https://docs.microsoft.com/en-us/graph/api/user-assignlicense?view=graph-rest-1.0
参数:
addLicenses (AssignedLicense集合)
assignedLicense对象的集合,这些对象指定要添加的许可证。您可以 通过设置disabledPlans来禁用与许可证关联的计划 属性在AssignedLicense对象上。
删除许可(引导程序集合)
标识要删除的许可证的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);
我没有收到错误,但是没有用。用户没有许可证...
答案 0 :(得分: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();