Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, vai expandir a aplicação que criou na compilação de aplicações .NET com o Microsoft Graph e a autenticação apenas de aplicações com as APIs de utilizador do Microsoft Graph. Utiliza o Microsoft Graph para listar utilizadores na sua organização.
Abra ./GraphHelper.cs e adicione a seguinte função à classe GraphHelper .
public static Task<UserCollectionResponse?> GetUsersAsync() { // Ensure client isn't null _ = appClient ?? throw new NullReferenceException("Graph has not been initialized for app-only auth"); return appClient.Users.GetAsync((config) => { /* Only request specific properties */ config.QueryParameters.Select = ["displayName", "id", "mail"]; /* Get at most 25 results */ config.QueryParameters.Top = 25; /* Sort by display name */ config.QueryParameters.Orderby = ["displayName"]; }); }Substitua a função empty
ListUsersAsyncno Program.cs pelo seguinte.async Task ListUsersAsync() { try { var userPage = await GraphHelper.GetUsersAsync(); if (userPage?.Value == null) { Console.WriteLine("No results returned."); return; } // Output each users's details foreach (var user in userPage.Value) { Console.WriteLine($"User: {user.DisplayName ?? "NO NAME"}"); Console.WriteLine($" ID: {user.Id}"); Console.WriteLine($" Email: {user.Mail ?? "NO EMAIL"}"); } // If NextPageRequest is not null, there are more users // available on the server // Access the next page like: // var nextPageRequest = new UsersRequestBuilder(userPage.OdataNextLink, _appClient.RequestAdapter); // var nextPage = await nextPageRequest.GetAsync(); var moreAvailable = !string.IsNullOrEmpty(userPage.OdataNextLink); Console.WriteLine($"\nMore users available? {moreAvailable}"); } catch (Exception ex) { Console.WriteLine($"Error getting users: {ex.Message}"); } }Execute a aplicação e escolha a opção 2 para listar os utilizadores.
Please choose one of the following options: 0. Exit 1. Display access token 2. List users 3. Make a Graph call 2 User: Adele Vance ID: 05fb57bf-2653-4396-846d-2f210a91d9cf Email: AdeleV@contoso.com User: Alex Wilber ID: a36fe267-a437-4d24-b39e-7344774d606c Email: AlexW@contoso.com User: Allan Deyoung ID: 54cebbaa-2c56-47ec-b878-c8ff309746b0 Email: AllanD@contoso.com User: Bianca Pisani ID: 9a7dcbd0-72f0-48a9-a9fa-03cd46641d49 Email: NO EMAIL User: Brian Johnson (TAILSPIN) ID: a8989e40-be57-4c2e-bf0b-7cdc471e9cc4 Email: BrianJ@contoso.com ... More users available? True
Código explicado
Considere o código na GetUsersAsync função .
- Obtém uma coleção de utilizadores
-
SelectUtiliza para pedir propriedades específicas -
TopUtiliza para limitar o número de utilizadores devolvidos -
OrderByUtiliza para ordenar a resposta