AAD群组增量查询不再返回成员@delta了吗?
创始人
2024-07-21 18:00:58
0

最近更新的 Microsoft Graph API 的版本中,AAD群组增量查询(delta)不再返回成员 "@delta" 字段。相反,可以使用增量查询的方式来获取群组的成员变化。

下面是一个使用 Microsoft Graph API 进行增量查询群组成员变化的代码示例:

// 安装 NuGet 包 Microsoft.Graph

using Microsoft.Graph;
using Microsoft.Identity.Client;
using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static async Task Main(string[] args)
    {
        string clientId = "YourClientId";
        string clientSecret = "YourClientSecret";
        string tenantId = "YourTenantId";

        IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
            .Create(clientId)
            .WithClientSecret(clientSecret)
            .WithAuthority($"https://login.microsoftonline.com/{tenantId}")
            .Build();

        ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);

        GraphServiceClient graphClient = new GraphServiceClient(authProvider);

        string groupId = "YourGroupId";
        string token = null;
        do
        {
            var request = graphClient.Groups[groupId].Members
                .Request()
                .Top(100)
                .GetHttpRequestMessage();

            if (!string.IsNullOrEmpty(token))
            {
                request.Headers.Add("ConsistencyLevel", "eventual");
                request.Headers.Add("deltaLink", token);
            }

            var response = await graphClient.HttpProvider.SendAsync(request);
            var content = await response.Content.ReadAsStringAsync();

            if (response.IsSuccessStatusCode)
            {
                var members = JsonConvert.DeserializeObject>(content);
                var deltaLink = response.Headers.FirstOrDefault(h => h.Key == "deltaLink").Value.FirstOrDefault();

                // 处理成员变化
                foreach (var member in members)
                {
                    Console.WriteLine(member.Id);
                }

                token = deltaLink;
            }
            else
            {
                // 处理错误
                Console.WriteLine(content);
            }

        } while (!string.IsNullOrEmpty(token));
    }
}

上述代码使用了 Microsoft Graph SDK,并通过客户端凭据授权方式进行身份验证。请将 "YourClientId","YourClientSecret" 和 "YourTenantId" 替换为你自己的应用程序注册信息。

在主循环中,我们使用 GetHttpRequestMessage 方法创建一个请求,设置 ConsistencyLeveleventual,并将 deltaLink 添加到请求头中。然后发送请求,并处理响应中的成员变化。

希望这个代码示例对你有帮助!

相关内容

热门资讯

安装了Anaconda之后找不... 在安装Anaconda后,如果找不到Jupyter Notebook,可以尝试以下解决方法:检查环境...
安卓系统怎么连不上carlif... 安卓系统无法连接CarLife的原因及解决方法随着智能手机的普及,CarLife这一车载互联功能为驾...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
oppo手机安卓系统换成苹果系... OPPO手机安卓系统换成苹果系统:现实吗?如何操作?随着智能手机市场的不断发展,用户对于手机系统的需...
避免在粘贴双引号时向VS 20... 在粘贴双引号时向VS 2022添加反斜杠的问题通常是由于编辑器的自动转义功能引起的。为了避免这个问题...
安装安卓应用时出现“Play ... 在安装安卓应用时出现“Play Protect 警告弹窗”的原因是Google Play Prote...
安卓平板改windows 系统... 你有没有想过,你的安卓平板电脑是不是也能变身成Windows系统的超级英雄呢?想象在同一个设备上,你...
vivo安卓系统取消更新系统,... 亲爱的vivo手机用户们,你们是不是也遇到了这样的烦恼:手机里突然冒出一个更新提示,点开一看,哇,新...
安卓系统连接耳机模式,蓝牙、有... 亲爱的手机控们,你们有没有遇到过这种情况:手机突然变成了“耳机模式”,明明耳机没插,声音却只从耳机孔...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...