Dela via


Självstudie: Anropa ett API och visa resultatet

I den föregående självstudien lade du till inloggnings- och utloggningsfunktionerna i programmet. Programmet kan nu konfigureras för att anropa ett webb-API. I den här självstudien anropas Microsoft Graph API för att visa profilinformationen för den inloggade användaren.

I den här självstudien:

  • Anropa API:et och visa resultatet
  • Testa programmet

Förutsättningar

Anropa API:et och visa resultatet

  1. Under Sidor öppnar du filen Index.cshtml.cs och ersätter hela innehållet i filen med följande kodfragment. Kontrollera att projektet namespace matchar projektnamnet.

    using System.Text.Json;
    using Microsoft.AspNetCore.Mvc.RazorPages;
    using Microsoft.Identity.Web;
    using Microsoft.Identity.Abstractions;
    
    namespace sign_in_webapp.Pages;
    
    [AuthorizeForScopes(ScopeKeySection = "DownstreamApi:Scopes")]
    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;
    
        private readonly IDownstreamApi  _downstreamWebApi;
    
        public IndexModel(ILogger<IndexModel> logger,
                            IDownstreamApi  downstreamWebApi)
        {
            _logger = logger;
            _downstreamWebApi = downstreamWebApi;
        }
    
        public async Task OnGet()
        {
            using var response = await _downstreamWebApi.CallApiForUserAsync("DownstreamApi").ConfigureAwait(false);
            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var apiResult = await response.Content.ReadFromJsonAsync<JsonDocument>().ConfigureAwait(false);
                ViewData["ApiResult"] = JsonSerializer.Serialize(apiResult, new JsonSerializerOptions { WriteIndented = true });
            }
            else
            {
                var error = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
                throw new HttpRequestException($"Invalid status code in the HttpResponseMessage: {response.StatusCode}: {error}");
            }
        }
    }
    
  2. Öppna Index.cshtml och lägg till följande kod längst ned i filen. Detta hanterar hur informationen som tas emot från API:et visas:

    <p>Before rendering the page, the Page Model was able to make a call to Microsoft Graph's <code>/me</code> API for your user and received the following:</p>
    
    <p><pre><code class="language-js">@ViewData["ApiResult"]</code></pre></p>
    
    <p>Refreshing this page will continue to use the cached access token acquired for Microsoft Graph, which is valid for future page views will attempt to refresh this token as it nears its expiration.</p>
    

Testa programmet

Starta programmet genom att välja Starta utan felsökning.

  1. Beroende på din IDE kan du behöva ange programmets URI i webbläsaren, till exempel https://localhost:7100. När inloggningsfönstret visas väljer du det konto som du vill logga in med. Se till att kontot matchar villkoren för appregistreringen.

    Skärmbild som visar kontoalternativ för inloggning.

  2. När du väljer kontot visas ett andra fönster som anger att en kod skickas till din e-postadress. Välj Skicka kod och markera inkorgen för e-post.

    Skärmbild som visar en skärm för att skicka en kod till användarens e-post.

  3. Öppna e-postmeddelandet från avsändarens Microsoft-kontoteam och ange den sjusiffriga engångskoden. När du har angett väljer du Logga in.

    Skärmbild som visar proceduren för enkel inloggning med kod.

  4. För Håll dig inloggad kan du välja Antingen Nej eller Ja.

    Skärmbild som visar alternativet om du vill fortsätta vara inloggad.

  5. Programmet begär behörighet att behålla åtkomsten till data som du har gett den åtkomst till och logga in dig och läsa din profil. Välj Acceptera.

    Skärmbild som visar behörighetsbegäranden.

  6. Följande skärmbild visas som anger att du har loggat in på programmet och har använt din profilinformation från Microsoft Graph-API:et.

    Skärmbild som visar resultatet av API-anropet.

Logga ut från programmet

  1. Hitta länken Logga ut i det övre högra hörnet på sidan och välj den.
  2. Du uppmanas att välja ett konto att logga ut från. Välj det konto som du använde för att logga in.
  3. Ett meddelande visas som anger att du har loggat ut. Nu kan du stänga webbläsarfönstret.

Nästa steg

Lär dig hur du använder Microsofts identitetsplattform genom att skapa ett webb-API med följande självstudieserie.