Lingua

MicrosoftIdentityHttpClientBuilderExtensions.AddMicrosoftIdentityMessageHandler Metodo

Definizione

Overload

Nome Descrizione
AddMicrosoftIdentityMessageHandler(IHttpClientBuilder)

Aggiunge un oggetto MicrosoftIdentityMessageHandler alla pipeline client HTTP senza opzioni predefinite. Le opzioni devono essere configurate per richiesta tramite WithAuthenticationOptions(HttpRequestMessage, MicrosoftIdentityMessageHandlerOptions).

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, MicrosoftIdentityMessageHandlerOptions)

Aggiunge un oggetto MicrosoftIdentityMessageHandler alla pipeline client HTTP con le opzioni specificate.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, Action<MicrosoftIdentityMessageHandlerOptions>)

Aggiunge un MicrosoftIdentityMessageHandler oggetto alla pipeline client HTTP con le opzioni configurate tramite delegato.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, IConfiguration, String)

Aggiunge un oggetto MicrosoftIdentityMessageHandler alla pipeline client HTTP con opzioni associate da IConfiguration.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder)

Aggiunge un oggetto MicrosoftIdentityMessageHandler alla pipeline client HTTP senza opzioni predefinite. Le opzioni devono essere configurate per richiesta tramite WithAuthenticationOptions(HttpRequestMessage, MicrosoftIdentityMessageHandlerOptions).

public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddMicrosoftIdentityMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder);
static member AddMicrosoftIdentityMessageHandler : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function AddMicrosoftIdentityMessageHandler (builder As IHttpClientBuilder) As IHttpClientBuilder

Parametri

builder
IHttpClientBuilder

Oggetto IHttpClientBuilder da configurare.

Valori restituiti

Oggetto IHttpClientBuilder per il concatenamento dei metodi.

Eccezioni

Generata quando builder è null.

Esempio

// Configure the HTTP client
services.AddHttpClient("ApiClient")
    .AddMicrosoftIdentityMessageHandler();

// Use the client with per-request configuration
public class MyService
{
    private readonly HttpClient _httpClient;

    public MyService(IHttpClientFactory factory)
    {
        _httpClient = factory.CreateClient("ApiClient");
    }

    public async Task<string> GetDataAsync()
    {
        var request = new HttpRequestMessage(HttpMethod.Get, "/api/data")
            .WithAuthenticationOptions(options =>
            {
                options.Scopes.Add("https://api.example.com/.default");
            });

        var response = await _httpClient.SendAsync(request);
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

Commenti

Questo overload è utile quando è necessaria la massima flessibilità per configurare le opzioni di autenticazione per ogni richiesta. Poiché non sono disponibili opzioni predefinite, ogni richiesta deve includere opzioni di autenticazione tramite il metodo di WithAuthenticationOptions estensione.

Il gestore verrà risolto IAuthorizationHeaderProvider dal provider di servizi in fase di esecuzione per acquisire le intestazioni di autorizzazione per le richieste in uscita.

Si applica a

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, MicrosoftIdentityMessageHandlerOptions)

Aggiunge un oggetto MicrosoftIdentityMessageHandler alla pipeline client HTTP con le opzioni specificate.

public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddMicrosoftIdentityMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions options);
static member AddMicrosoftIdentityMessageHandler : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function AddMicrosoftIdentityMessageHandler (builder As IHttpClientBuilder, options As MicrosoftIdentityMessageHandlerOptions) As IHttpClientBuilder

Parametri

builder
IHttpClientBuilder

Oggetto IHttpClientBuilder da configurare.

options
MicrosoftIdentityMessageHandlerOptions

Opzioni di autenticazione da usare per tutte le richieste effettuate dal client.

Valori restituiti

Oggetto IHttpClientBuilder per il concatenamento dei metodi.

Eccezioni

Generata quando builder o options è null.

Esempio

// Pre-configure options
var options = new MicrosoftIdentityMessageHandlerOptions
{
    Scopes = { "https://graph.microsoft.com/.default" }
};
options.WithAgentIdentity("agent-application-id");

// Configure the HTTP client with the pre-built options
services.AddHttpClient("GraphClient", client =>
{
    client.BaseAddress = new Uri("https://graph.microsoft.com");
})
.AddMicrosoftIdentityMessageHandler(options);

// Use the client - authentication is automatic
public class GraphService
{
    private readonly HttpClient _httpClient;

    public GraphService(IHttpClientFactory factory)
    {
        _httpClient = factory.CreateClient("GraphClient");
    }

    public async Task<string> GetUserProfileAsync()
    {
        var response = await _httpClient.GetAsync("/v1.0/me");
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

Commenti

Questo overload è utile quando si dispone di un'istanza preconfigurato MicrosoftIdentityMessageHandlerOptions che deve essere usata per tutte le richieste effettuate da questo client HTTP. Le singole richieste possono comunque eseguire l'override di queste opzioni predefinite usando i metodi di estensione per richiesta.

Il gestore verrà risolto IAuthorizationHeaderProvider dal provider di servizi in fase di esecuzione per acquisire le intestazioni di autorizzazione per le richieste in uscita.

Si applica a

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, Action<MicrosoftIdentityMessageHandlerOptions>)

Aggiunge un MicrosoftIdentityMessageHandler oggetto alla pipeline client HTTP con le opzioni configurate tramite delegato.

public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddMicrosoftIdentityMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, Action<Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions> configureOptions);
static member AddMicrosoftIdentityMessageHandler : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * Action<Microsoft.Identity.Web.MicrosoftIdentityMessageHandlerOptions> -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function AddMicrosoftIdentityMessageHandler (builder As IHttpClientBuilder, configureOptions As Action(Of MicrosoftIdentityMessageHandlerOptions)) As IHttpClientBuilder

Parametri

builder
IHttpClientBuilder

Oggetto IHttpClientBuilder da configurare.

configureOptions
Action<MicrosoftIdentityMessageHandlerOptions>

Delegato per configurare le opzioni di autenticazione.

Valori restituiti

Oggetto IHttpClientBuilder per il concatenamento dei metodi.

Eccezioni

Generata quando builder o configureOptions è null.

Esempio

// Configure the HTTP client with inline options configuration
services.AddHttpClient("MyApiClient", client =>
{
    client.BaseAddress = new Uri("https://api.example.com");
})
.AddMicrosoftIdentityMessageHandler(options =>
{
    options.Scopes.Add("https://api.example.com/.default");
    options.RequestAppToken = true;
});

// Use the client - authentication is automatic
public class ApiService
{
    private readonly HttpClient _httpClient;

    public ApiService(IHttpClientFactory factory)
    {
        _httpClient = factory.CreateClient("MyApiClient");
    }

    public async Task<string> GetDataAsync()
    {
        var response = await _httpClient.GetAsync("/api/data");
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

Con l'identità dell'agente:

services.AddHttpClient("AgentClient")
    .AddMicrosoftIdentityMessageHandler(options =>
    {
        options.Scopes.Add("https://graph.microsoft.com/.default");
        options.WithAgentIdentity("agent-application-id");
        options.RequestAppToken = true;
    });

Commenti

Questo overload è utile per la configurazione inline delle opzioni di autenticazione. Il delegato viene chiamato una volta durante la configurazione del servizio per creare le opzioni predefinite per il client HTTP. Le singole richieste possono comunque eseguire l'override di queste opzioni predefinite usando i metodi di estensione per richiesta.

Il gestore verrà risolto IAuthorizationHeaderProvider dal provider di servizi in fase di esecuzione per acquisire le intestazioni di autorizzazione per le richieste in uscita.

Si applica a

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, IConfiguration, String)

Aggiunge un oggetto MicrosoftIdentityMessageHandler alla pipeline client HTTP con opzioni associate da IConfiguration.

public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddMicrosoftIdentityMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, Microsoft.Extensions.Configuration.IConfiguration configuration, string sectionName);
static member AddMicrosoftIdentityMessageHandler : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * Microsoft.Extensions.Configuration.IConfiguration * string -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function AddMicrosoftIdentityMessageHandler (builder As IHttpClientBuilder, configuration As IConfiguration, sectionName As String) As IHttpClientBuilder

Parametri

builder
IHttpClientBuilder

Oggetto IHttpClientBuilder da configurare.

configuration
IConfiguration

Sezione di configurazione contenente le opzioni di autenticazione.

sectionName
String

Nome della sezione di configurazione (utilizzata per la diagnostica).

Valori restituiti

Oggetto IHttpClientBuilder per il concatenamento dei metodi.

Eccezioni

Generata quando builder, configurationo sectionName è null.

Esempio

Configurazione in appsettings.json:

{
  "DownstreamApi": {
    "Scopes": ["https://api.example.com/.default"]
  },
  "GraphApi": {
    "Scopes": ["https://graph.microsoft.com/.default", "User.Read"]
  }
}

Configurare il client HTTP:

// In Program.cs or Startup.cs
services.AddHttpClient("DownstreamApiClient", client =>
{
    client.BaseAddress = new Uri("https://api.example.com");
})
.AddMicrosoftIdentityMessageHandler(
    configuration.GetSection("DownstreamApi"),
    "DownstreamApi");

services.AddHttpClient("GraphClient", client =>
{
    client.BaseAddress = new Uri("https://graph.microsoft.com");
})
.AddMicrosoftIdentityMessageHandler(
    configuration.GetSection("GraphApi"),
    "GraphApi");

Usare i client:

public class MyService
{
    private readonly HttpClient _apiClient;
    private readonly HttpClient _graphClient;

    public MyService(IHttpClientFactory factory)
    {
        _apiClient = factory.CreateClient("DownstreamApiClient");
        _graphClient = factory.CreateClient("GraphClient");
    }

    public async Task<string> GetApiDataAsync()
    {
        var response = await _apiClient.GetAsync("/api/data");
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }

    public async Task<string> GetUserProfileAsync()
    {
        var response = await _graphClient.GetAsync("/v1.0/me");
        response.EnsureSuccessStatusCode();
        return await response.Content.ReadAsStringAsync();
    }
}

Commenti

Questo overload è utile quando si desidera configurare le opzioni di autenticazione da appsettings.json o da altre origini di configurazione. La sezione di configurazione è associata a una nuova MicrosoftIdentityMessageHandlerOptions istanza usando l'associazione di configurazione standard. Le singole richieste possono comunque eseguire l'override di queste opzioni predefinite usando i metodi di estensione per richiesta.

Il gestore verrà risolto IAuthorizationHeaderProvider dal provider di servizi in fase di esecuzione per acquisire le intestazioni di autorizzazione per le richieste in uscita.

Si applica a