Język

MicrosoftIdentityHttpClientBuilderExtensions.AddMicrosoftIdentityMessageHandler Metoda

Definicja

Przeciążenia

Nazwisko Opis
AddMicrosoftIdentityMessageHandler(IHttpClientBuilder)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP bez opcji domyślnych. Opcje muszą być skonfigurowane na żądanie przy użyciu polecenia WithAuthenticationOptions(HttpRequestMessage, MicrosoftIdentityMessageHandlerOptions).

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, MicrosoftIdentityMessageHandlerOptions)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP z określonymi opcjami.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, Action<MicrosoftIdentityMessageHandlerOptions>)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP z opcjami skonfigurowanymi za pośrednictwem delegata.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, IConfiguration, String)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP z opcjami powiązanymi z konfiguracją IConfiguration.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP bez opcji domyślnych. Opcje muszą być skonfigurowane na żądanie przy użyciu polecenia 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

Parametry

builder
IHttpClientBuilder

Element do skonfigurowania IHttpClientBuilder .

Zwraca

Element IHttpClientBuilder dla metody tworzenia łańcucha.

Wyjątki

Zgłaszany, gdy builder ma wartość null.

Przykłady

// 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();
    }
}

Uwagi

To przeciążenie jest przydatne, gdy potrzebujesz maksymalnej elastyczności, aby skonfigurować opcje uwierzytelniania dla poszczególnych żądań. Ponieważ nie podano opcji domyślnych, każde żądanie musi zawierać opcje uwierzytelniania za pośrednictwem WithAuthenticationOptions metody rozszerzenia.

Procedura obsługi zostanie rozpoznana IAuthorizationHeaderProvider przez dostawcę usług w czasie wykonywania w celu uzyskania nagłówków autoryzacji dla żądań wychodzących.

Dotyczy

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, MicrosoftIdentityMessageHandlerOptions)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP z określonymi opcjami.

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

Parametry

builder
IHttpClientBuilder

Element do skonfigurowania IHttpClientBuilder .

options
MicrosoftIdentityMessageHandlerOptions

Opcje uwierzytelniania do użycia dla wszystkich żądań wysyłanych przez tego klienta.

Zwraca

Element IHttpClientBuilder dla metody tworzenia łańcucha.

Wyjątki

Zgłaszany, gdy builder element lub options ma wartość null.

Przykłady

// 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();
    }
}

Uwagi

To przeciążenie jest przydatne, gdy masz wstępnie skonfigurowane MicrosoftIdentityMessageHandlerOptions wystąpienie, które powinno być używane dla wszystkich żądań wysyłanych przez tego klienta HTTP. Poszczególne żądania nadal mogą zastąpić te opcje domyślne przy użyciu metod rozszerzeń dla poszczególnych żądań.

Procedura obsługi zostanie rozpoznana IAuthorizationHeaderProvider przez dostawcę usług w czasie wykonywania w celu uzyskania nagłówków autoryzacji dla żądań wychodzących.

Dotyczy

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, Action<MicrosoftIdentityMessageHandlerOptions>)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP z opcjami skonfigurowanymi za pośrednictwem delegata.

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

Parametry

builder
IHttpClientBuilder

Element do skonfigurowania IHttpClientBuilder .

configureOptions
Action<MicrosoftIdentityMessageHandlerOptions>

Pełnomocnik do konfigurowania opcji uwierzytelniania.

Zwraca

Element IHttpClientBuilder dla metody tworzenia łańcucha.

Wyjątki

Zgłaszany, gdy builder element lub configureOptions ma wartość null.

Przykłady

// 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();
    }
}

Z tożsamością agenta:

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

Uwagi

To przeciążenie jest przydatne w przypadku wbudowanej konfiguracji opcji uwierzytelniania. Delegat jest wywoływany raz podczas konfiguracji usługi, aby utworzyć domyślne opcje dla klienta HTTP. Poszczególne żądania nadal mogą zastąpić te opcje domyślne przy użyciu metod rozszerzeń dla poszczególnych żądań.

Procedura obsługi zostanie rozpoznana IAuthorizationHeaderProvider przez dostawcę usług w czasie wykonywania w celu uzyskania nagłówków autoryzacji dla żądań wychodzących.

Dotyczy

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, IConfiguration, String)

Dodaje element MicrosoftIdentityMessageHandler do potoku klienta HTTP z opcjami powiązanymi z konfiguracją 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

Parametry

builder
IHttpClientBuilder

Element do skonfigurowania IHttpClientBuilder .

configuration
IConfiguration

Sekcja konfiguracji zawierająca opcje uwierzytelniania.

sectionName
String

Nazwa sekcji konfiguracji (używana do diagnostyki).

Zwraca

Element IHttpClientBuilder dla metody tworzenia łańcucha.

Wyjątki

Zgłaszany, gdy builderelement , configurationlub sectionName ma wartość null.

Przykłady

Konfiguracja w appsettings.json:

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

Skonfiguruj klienta 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");

Użyj klientów:

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();
    }
}

Uwagi

To przeciążenie jest przydatne, gdy chcesz skonfigurować opcje uwierzytelniania z appsettings.json lub innych źródeł konfiguracji. Sekcja konfiguracji jest powiązana z nowym MicrosoftIdentityMessageHandlerOptions wystąpieniem przy użyciu standardowego powiązania konfiguracji. Poszczególne żądania nadal mogą zastąpić te opcje domyślne przy użyciu metod rozszerzeń dla poszczególnych żądań.

Procedura obsługi zostanie rozpoznana IAuthorizationHeaderProvider przez dostawcę usług w czasie wykonywania w celu uzyskania nagłówków autoryzacji dla żądań wychodzących.

Dotyczy