使.net的Microsoft Azure Graph Client发布$ expand

svi*_*nto 8 c# graph azure office365 azure-active-directory

我正在尝试检索目录中所有用户的(分页)列表,并扩展了manager属性.当我运行以下HTTP查询时,它按我的意愿工作:

https://graph.windows.net/DOMAIN/users/?$expand=manager&api-version=2013-11-08
Run Code Online (Sandbox Code Playgroud)

但是,我似乎没有掌握如何使用Azure AD Graph客户端进行相同的查询.这就是我正在尝试的:

var userResult = _activeDirectoryClient.Users.Expand(x => x.Manager).ExecuteAsync().Result;
Run Code Online (Sandbox Code Playgroud)

小智 4

我根据https://github.com/AzureADSamples/ConsoleApp-GraphAPI-DotNet/blob/master/GraphConsoleAppV3/Program.cs的示例改编了以下内容,请尝试一下:

	        List<IUser> usersList = null;
            IPagedCollection<IUser> searchResults = null;
            try
            {
                IUserCollection userCollection = activeDirectoryClient.Users;
                userResult = userCollection.ExecuteAsync().Result;
                usersList = searchResults.CurrentPage.ToList();
            }
            catch (Exception e)
            {
                Console.WriteLine("\nError getting User {0} {1}", e.Message,
                    e.InnerException != null ? e.InnerException.Message : "");
            }

            if (usersList != null && usersList.Count > 0)
            {
                do
                {
                    usersList = searchResults.CurrentPage.ToList();
                    foreach (IUser user in usersList)
                    {
                        Console.WriteLine("User DisplayName: {0}  UPN: {1}  Manager: {2}",
                            user.DisplayName, user.UserPrincipalName, user.Manager);
                    }
                    searchResults = searchResults.GetNextPageAsync().Result;
                } while (searchResults != null);
            }
            else
            {
                Console.WriteLine("No users found");
            }
Run Code Online (Sandbox Code Playgroud)