如何用Microsoft Graph .NET SDK调用指定appId的服务主体端点并一键禁用?
解决方案
1. 通过应用程序ID(AppId)检索服务主体
对应GET /servicePrincipals(appId='{appId}')端点,Microsoft Graph .NET SDK提供了WithAppId扩展方法直接定位目标服务主体,代码示例如下:
// 替换为实际的应用程序ID string targetAppId = "你的应用程序ID"; // 检索服务主体对象 var servicePrincipal = await graphClient.ServicePrincipals .WithAppId(targetAppId) .GetAsync(cancellationToken);
2. 一次调用完成服务主体禁用操作
完全可以通过单次调用直接完成禁用,无需先检索对象ID再更新。直接在WithAppId定位的端点上调用PatchAsync方法即可:
string targetAppId = "你的应用程序ID"; await graphClient.ServicePrincipals .WithAppId(targetAppId) .PatchAsync(new ServicePrincipal { AccountEnabled = false }, cancellationToken: cancellationToken);
注意事项
- 确保你的应用拥有足够权限(如
Application.ReadWrite.All或Directory.ReadWrite.All)来修改服务主体。 - 若目标AppId对应的服务主体不存在,调用会返回404错误,建议根据业务需求添加错误处理逻辑。
内容的提问来源于stack exchange,提问作者Shuzheng
相关产品推荐
相关产品推荐

