Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op: 
 Werknemerstenants (meer informatie)
Nadat u een token hebt, kunt u een beveiligde web-API aanroepen. Meestal roept u de downstream-API's aan vanaf de controller of pagina's van uw web-API.
Controllercode
Wanneer u Microsoft.Identity.Web gebruikt, hebt u drie gebruiksscenario's:
- Optie 1: Microsoft Graph aanroepen met de SDK
 - Optie 2: een downstream-web-API aanroepen met de helperklasse
 - Optie 3: een downstream-web-API aanroepen zonder de helperklasse
 
Optie 1: Microsoft Graph aanroepen met de SDK
In dit scenario hebt u het NuGet-pakket Microsoft.Identity.Web.GraphServiceClient toegevoegd en hebt u .AddMicrosoftGraph() in Startup.cs toegevoegd zoals gespecificeerd in de configuratie van de code, en u kunt direct de GraphServiceClient in uw controller of paginaconstructeur injecteren voor gebruik in de acties. Op de volgende voorbeeldpagina van Razor wordt de foto van de aangemelde gebruiker weergegeven.
 [Authorize]
 [AuthorizeForScopes(Scopes = new[] { "user.read" })]
 public class IndexModel : PageModel
 {
     private readonly GraphServiceClient _graphServiceClient;
     public IndexModel(GraphServiceClient graphServiceClient)
     {
         _graphServiceClient = graphServiceClient;
     }
     public async Task OnGet()
     {
         var user = await _graphServiceClient.Me.GetAsync();
         try
         {
             using (var photoStream = await _graphServiceClient.Me.Photo.Content.GetAsync())
             {
                 byte[] photoByte = ((MemoryStream)photoStream).ToArray();
                 ViewData["photo"] = Convert.ToBase64String(photoByte);
             }
             ViewData["name"] = user.DisplayName;
         }
         catch (Exception)
         {
             ViewData["photo"] = null;
         }
     }
 }
Optie 2: een downstream-web-API aanroepen met de helperklasse
In dit scenario heb je .AddDownstreamApi() toegevoegd in Startup.cs zoals opgegeven in de codeconfiguratie, en kun je rechtstreeks een IDownstreamWebApi-service in je controller- of paginaconstructor injecteren en deze gebruiken in de acties:
 [Authorize]
 [AuthorizeForScopes(ScopeKeySection = "TodoList:Scopes")]
 public class TodoListController : Controller
 {
     private IDownstreamWebApi _downstreamWebApi;
     private const string ServiceName = "TodoList";
     public TodoListController(IDownstreamWebApi downstreamWebApi)
     {
         _downstreamWebApi = downstreamWebApi;
     }
     public async Task<ActionResult> Details(int id)
     {
         var value = await _downstreamWebApi.CallApiForUserAsync(
             ServiceName,
             options =>
             {
                 options.RelativePath = $"me";
             });
         return View(value);
     }
De CallApiForUserAsync-methode heeft ook sterk getypte generieke overschrijfmethoden waarmee u direct een object kunt ontvangen. De volgende methode heeft bijvoorbeeld een Todo exemplaar ontvangen. Dit is een sterk getypte weergave van de JSON die wordt geretourneerd door de web-API.
 // GET: TodoList/Details/5
 public async Task<ActionResult> Details(int id)
 {
     var value = await _downstreamWebApi.CallApiForUserAsync<object, Todo>(
         ServiceName,
         null,
         options =>
         {
             options.HttpMethod = HttpMethod.Get;
             options.RelativePath = $"api/todolist/{id}";
         });
     return View(value);
 }
Optie 3: een downstream-web-API aanroepen zonder de helperklasse
Als u hebt besloten een autorisatieheader op te halen met behulp van de IAuthorizationHeaderProvider interface, gaat de volgende code verder met de voorbeeldcode die wordt weergegeven in een web-API die web-API's aanroept: Een token voor de app verkrijgen. De code wordt aangeroepen in de acties van de API-controllers. Er wordt een downstream-API aangeroepen met de naam todolist.
Nadat u het token hebt opgehaald, gebruikt u het als bearer-token om de downstream-API aan te roepen.
private async Task CallTodoListService(string accessToken)
{
  // After the token has been returned by Microsoft.Identity.Web, add it to the HTTP authorization header before making the call to access the todolist service.
  authorizationHeader = await authorizationHeaderProvider.GetAuthorizationHeaderForUserAsync(scopes);
  _httpClient.DefaultRequestHeaders["Authorization"] = authorizationHeader;
  // Call the todolist service.
  HttpResponseMessage response = await _httpClient.GetAsync(TodoListBaseAddress + "/api/todolist");
  // ...
}
Volgende stappen
Leer meer door het bouwen van een ASP.NET Core-web-app waarmee gebruikers worden aangemeld in de volgende tutorialreeks met meerdere delen.
Voorbeelden van web-API's van Microsoft Identity Platform verkennen