Sprache

MicrosoftIdentityHttpClientBuilderExtensions.AddMicrosoftIdentityMessageHandler Methode

Definition

Überlädt

Name Beschreibung
AddMicrosoftIdentityMessageHandler(IHttpClientBuilder)

Fügt der MicrosoftIdentityMessageHandler HTTP-Clientpipeline eine Ohne Standardoptionen hinzu. Optionen müssen pro Anforderung mithilfe von WithAuthenticationOptions(HttpRequestMessage, MicrosoftIdentityMessageHandlerOptions).

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, MicrosoftIdentityMessageHandlerOptions)

Fügt der MicrosoftIdentityMessageHandler HTTP-Clientpipeline eine mit den angegebenen Optionen hinzu.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, Action<MicrosoftIdentityMessageHandlerOptions>)

Fügt der HTTP-Clientpipeline eine MicrosoftIdentityMessageHandler Option hinzu, die über Stellvertretung konfiguriert ist.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, IConfiguration, String)

Fügt der HTTP-Clientpipeline eine MicrosoftIdentityMessageHandler Verbindung mit optionen hinzu, die von IConfiguration gebunden sind.

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder)

Fügt der MicrosoftIdentityMessageHandler HTTP-Clientpipeline eine Ohne Standardoptionen hinzu. Optionen müssen pro Anforderung mithilfe von 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

Parameter

builder
IHttpClientBuilder

Der IHttpClientBuilder zu konfigurierende

Gibt zurück

Die IHttpClientBuilder methode verkettet.

Ausnahmen

Wird ausgelöst, wenn builder ist null.

Beispiele

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

Hinweise

Diese Überladung ist nützlich, wenn Sie maximale Flexibilität benötigen, um Authentifizierungsoptionen pro Anforderung zu konfigurieren. Da keine Standardoptionen bereitgestellt werden, muss jede Anforderung Authentifizierungsoptionen über die WithAuthenticationOptions Erweiterungsmethode enthalten.

Der Handler wird vom Dienstanbieter zur Laufzeit aufgelöst IAuthorizationHeaderProvider , um Autorisierungsheader für ausgehende Anforderungen abzurufen.

Gilt für:

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, MicrosoftIdentityMessageHandlerOptions)

Fügt der MicrosoftIdentityMessageHandler HTTP-Clientpipeline eine mit den angegebenen Optionen hinzu.

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

Parameter

builder
IHttpClientBuilder

Der IHttpClientBuilder zu konfigurierende

options
MicrosoftIdentityMessageHandlerOptions

Die Authentifizierungsoptionen, die für alle Anforderungen dieses Clients verwendet werden sollen.

Gibt zurück

Die IHttpClientBuilder methode verkettet.

Ausnahmen

Wird ausgelöst, wenn builder oder options ist null.

Beispiele

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

Hinweise

Diese Überladung ist nützlich, wenn Sie über eine vorkonfigurierte MicrosoftIdentityMessageHandlerOptions Instanz verfügen, die für alle Anforderungen verwendet werden soll, die von diesem HTTP-Client vorgenommen wurden. Einzelne Anforderungen können diese Standardoptionen mit den Methoden für die Erweiterung pro Anforderung weiterhin außer Kraft setzen.

Der Handler wird vom Dienstanbieter zur Laufzeit aufgelöst IAuthorizationHeaderProvider , um Autorisierungsheader für ausgehende Anforderungen abzurufen.

Gilt für:

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, Action<MicrosoftIdentityMessageHandlerOptions>)

Fügt der HTTP-Clientpipeline eine MicrosoftIdentityMessageHandler Option hinzu, die über Stellvertretung konfiguriert ist.

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

Parameter

builder
IHttpClientBuilder

Der IHttpClientBuilder zu konfigurierende

configureOptions
Action<MicrosoftIdentityMessageHandlerOptions>

Eine Stellvertretung zum Konfigurieren der Authentifizierungsoptionen.

Gibt zurück

Die IHttpClientBuilder methode verkettet.

Ausnahmen

Wird ausgelöst, wenn builder oder configureOptions ist null.

Beispiele

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

Mit Agentidentität:

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

Hinweise

Diese Überladung ist nützlich für die Inlinekonfiguration von Authentifizierungsoptionen. Der Delegat wird einmal während der Dienstkonfiguration aufgerufen, um die Standardoptionen für den HTTP-Client zu erstellen. Einzelne Anforderungen können diese Standardoptionen mit den Methoden für die Erweiterung pro Anforderung weiterhin außer Kraft setzen.

Der Handler wird vom Dienstanbieter zur Laufzeit aufgelöst IAuthorizationHeaderProvider , um Autorisierungsheader für ausgehende Anforderungen abzurufen.

Gilt für:

AddMicrosoftIdentityMessageHandler(IHttpClientBuilder, IConfiguration, String)

Fügt der HTTP-Clientpipeline eine MicrosoftIdentityMessageHandler Verbindung mit optionen hinzu, die von IConfiguration gebunden sind.

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

Parameter

builder
IHttpClientBuilder

Der IHttpClientBuilder zu konfigurierende

configuration
IConfiguration

Der Konfigurationsabschnitt mit den Authentifizierungsoptionen.

sectionName
String

Der Name des Konfigurationsabschnitts (wird für die Diagnose verwendet).

Gibt zurück

Die IHttpClientBuilder methode verkettet.

Ausnahmen

Wird ausgelöst, wenn builder, configuration, oder sectionName ist .null

Beispiele

Konfiguration in appsettings.json:

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

Konfigurieren sie den HTTP-Client:

// 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");

Verwenden Sie die Clients:

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

Hinweise

Diese Überladung ist nützlich, wenn Sie Authentifizierungsoptionen aus appsettings.json oder anderen Konfigurationsquellen konfigurieren möchten. Der Konfigurationsabschnitt ist mithilfe der Standardkonfigurationsbindung an eine neue MicrosoftIdentityMessageHandlerOptions Instanz gebunden. Einzelne Anforderungen können diese Standardoptionen mit den Methoden für die Erweiterung pro Anforderung weiterhin außer Kraft setzen.

Der Handler wird vom Dienstanbieter zur Laufzeit aufgelöst IAuthorizationHeaderProvider , um Autorisierungsheader für ausgehende Anforderungen abzurufen.

Gilt für: