MicrosoftIdentityHttpClientBuilderExtensions.AddMicrosoftIdentityMessageHandler Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.
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.