MicrosoftIdentityHttpClientBuilderExtensions.AddMicrosoftIdentityMessageHandler Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 .
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.