You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无Directory.Read.All API权限时获取邀请状态的可行方案

无Directory.Read.All权限时获取Azure AD邀请状态的解决方案

可行方案:

  • 通过用户属性间接判断状态:如果你的应用已有User.ReadBasic.All或User.Read权限,可查询目标用户的invitationAcceptedDateTime属性——该属性仅在用户接受邀请后会被赋值,若为null则说明邀请未被接受。示例代码:

    var user = await graphClient.Users[targetUserId].GetAsync(options => 
    {
        options.QueryParameters.Select = new[] { "id", "invitationAcceptedDateTime" };
    });
    bool isInvitationAccepted = user.InvitationAcceptedDateTime != null;
    
  • 申请细粒度权限Invitation.Read.All:这个权限专门用于读取邀请信息,权限范围远小于Directory.Read.All,更容易通过管理员审批。获取该权限后,你原本的Invitations[azureInvitation.Id.ToString()].GetAsync()调用即可正常执行,不会再触发权限异常。

  • 本地存储邀请状态:如果邀请是由你的应用创建的,在调用graphClient.Invitations.PostAsync()创建邀请时,将返回的邀请对象中的Id、Status、InvitedUserEmailAddress等关键信息存入本地数据库。后续查询状态时直接读取本地数据即可,无需调用Graph API。

当前报错说明:

你执行的Invitations.GetAsync()接口必须拥有Directory.Read.All或Invitation.Read.All权限才能访问,缺少权限时会触发你遇到的权限不足异常,上述方案可针对性解决该问题。

内容的提问来源于stack exchange,提问作者Divya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:32:39