Megosztás a következőn keresztül:


Alsóbb rétegbeli webes API meghívása démonalkalmazásból

A .NET démonalkalmazások meghívhatnak egy webes API-t. A .NET démonalkalmazások több előre telepített webes API-t is meghívhatnak.

Webes API meghívása démonalkalmazásból

Így hívhat meg egy API-t a jogkivonattal:

A Microsoft.Identity.Web elvonja a MSAL.NET összetettségét. Magasabb szintű API-kat biztosít, amelyek kezelik a MSAL.NET belső részeit, például feltételes hozzáférési hibák feldolgozását, gyorsítótárazást.

A következő Program.cs a démonalkalmazás, amely egy alsóbb rétegbeli API-t hív meg:

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Identity.Abstractions;
using Microsoft.Identity.Web;

// In the Program.cs, acquire a token for your downstream API

var tokenAcquirerFactory = TokenAcquirerFactory.GetDefaultInstance();
tokenAcquirerFactory.Services.AddDownstreamApi("MyApi",
    tokenAcquirerFactory.Configuration.GetSection("MyWebApi"));
var sp = tokenAcquirerFactory.Build();

var api = sp.GetRequiredService<IDownstreamApi>();
var result = await api.GetForAppAsync<IEnumerable<TodoItem>>("MyApi");
Console.WriteLine($"result = {result?.Count()}");

A Microsoft Graphot meghívó démonalkalmazás Program.cs:

var tokenAcquirerFactory = TokenAcquirerFactory.GetDefaultInstance();
tokenAcquirerFactory.Services.AddMicrosoftGraph();
var serviceProvider = tokenAcquirerFactory.Build();
try
{
    GraphServiceClient graphServiceClient = serviceProvider.GetRequiredService<GraphServiceClient>();
    var users = await graphServiceClient.Users
        .GetAsync(r => r.Options.WithAppOnly());
    Console.WriteLine($"{users.Count} users");
    Console.ReadKey();
}
catch (Exception ex) { Console.WriteLine("We could not retrieve the user's list: " + $"{ex}"); }

Több API meghívása

Démonalkalmazások esetén a hívott webes API-kat előre kell alkalmazni. A démonalkalmazások esetében nincs növekményes hozzájárulás. (Nincs felhasználói beavatkozás.) A bérlői rendszergazdának előzetesen meg kell adnia a hozzájárulást az alkalmazáshoz és az összes API-engedélyhez. Ha több API-t szeretne meghívni, szerezze be az egyes erőforrásokhoz tartozó jogkivonatot minden híváskor AcquireTokenForClient. Az MSAL az alkalmazásjogkivonat-gyorsítótár használatával kerüli el a szükségtelen szolgáltatáshívásokat.

Következő lépések