如何使用Graph API移除Azure应用注册的主页URL?
如何使用Microsoft Graph SDK for C#移除Azure应用注册的主页URL
你尝试通过Microsoft Graph API移除Azure应用注册的主页URL时遇到了问题:
- 当将
HomePageUrl设为null并调用UpdateAsync时,API返回204成功状态码,但主页URL并未被移除 - 传入空字符串时,API抛出异常(该行为符合预期)
你使用的代码如下:
var updateApp = new Application { Web = new WebApplication { HomePageUrl = null }, }; await graphClient.Applications[applicationObjectId].Request().UpdateAsync(updateApp);
要移除主页URL,你需要使用Json Patch操作来明确告知Graph API删除该属性。原因是UpdateAsync方法默认不会将null值的属性包含在请求体中,且Graph API对嵌套对象的null值处理为保留原有内容,而非移除。
使用JsonPatchDocument构建移除操作的示例代码:
using Microsoft.Graph.Models; using Microsoft.Graph.Models.ODataErrors; using Microsoft.Graph; // 创建补丁文档,指定要移除的属性路径 var patchDocument = new JsonPatchDocument<Application>(); patchDocument.Remove(app => app.Web.HomePageUrl); // 执行补丁更新 try { await graphClient.Applications[applicationObjectId] .Request() .PatchAsync(patchDocument); } catch (ODataError odataError) { // 处理异常 Console.WriteLine(odataError.Error.Message); }
这段代码会向Graph API发送包含remove操作指令的PATCH请求,确保homePageUrl属性被从应用注册的web配置中移除。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

