我正在尝试更新Azure AD中现有组的描述,但收到一条错误消息,我不确定如何解决。
public static async Task<bool> UpdateGroup(GraphServiceClient graphClient, Group group)
{
// Update the group.
Group grp = await graphClient.Groups[group.Id].Request().GetAsync();
grp.Description = group.Description;
await graphClient.Groups[group.Id].Request().UpdateAsync(grp);
return true;
}
以上只是引发异常:
代码:BadRequest消息:不支持该操作。
我不确定这是否缺少对Azure中API的启用权限,或者是否不真正支持更新组? 我可以很容易地创建/删除组,所以确定更新现有组应该同样容易吗?
答案 0 :(得分:1)
您的问题是,您首先要填充grp
,更改单个属性,然后尝试PATCH
整个组对象。因此,除了更新的说明外,您还尝试PATCH
(这是错误的出处)几个只读属性(例如id
)。
您的代码应如下所示:
await graphClient
.Groups[group.Id]
.Request()
.UpdateAsync(new Group() {
Description = group.Description
});
答案 1 :(得分:0)
我的个人计算机上没有VS env,因此现在无法测试图形库(我可以在10月2日进行测试)。如果Graph Libray也支持该API,则代码应该可以正常运行,因此您可以先检查权限配置。
await graphClient.Groups[group.Id].Request().UpdateAsync(grp);
一些来自图形库代码的参考:
/// <summary> /// Updates the specified Group using PATCH. /// </summary> /// <param name="groupToUpdate">The Group to update.</param> /// <returns>The updated Group.</returns> public System.Threading.Tasks.Task<Group> UpdateAsync(Group groupToUpdate) { } /// <summary> /// Updates the specified Group using PATCH. /// </summary> /// <param name="groupToUpdate">The Group to update.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> for the request.</param> /// <returns>The updated Group.</returns> public async System.Threading.Tasks.Task<Group> UpdateAsync(Group groupToUpdate, CancellationToken cancellationToken) { }