Quando dobbiamo leggere il valore di un header della richiesta, in ASP.NET Core 6 abbiamo a disposizione diverse soluzioni.
Una di queste è sicuramente quella di andare a ispezionare l'HttpContext corrente, e più nello specifico, l'oggetto HttpRequest.
Ma l'alternativa di gran lunga più comoda è quella di lasciare quest'incombenza al motore di binding, e limitarci ad aggiungere un parametro decorato con l'attributo FromHeader:
[HttpGet]
public IEnumerable<WeatherForecast> Get([FromHeader(Name = "X-MY-CUSTOM-HEADER")] string? someValue)
{
_logger.LogInformation("header received {header}", someValue);
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}Questa modalità funziona sia nel caso dei classici controller, sia nel caso di Minimal API, come possiamo vedere dal codice in basso:
app.MapGet("/people/{id}",
(ILogger<Program> logger, [FromHeader(Name = "X-MY-CUSTOM-HEADER")] string? someValue, int id) =>
{
logger.LogInformation($"/people invoked with parameter {id} and header {someValue}");
if (id == 0)
return Results.NotFound();
return Results.Json(new Person { Name = "Marco" });
});Attenzione a ricordarci di dichiarare la string come nullable (quindi utilizzando il formato string?), altrimenti il routing considererà questo parametro come obbligatorio.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Pubblicare un MCP Server in GitHub MCP Registry
Utilizzo del persistent state di Blazor nel prerendering
Esporre tool MCP da API REST con Azure App Service
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Ottimizzare i costi con Smart tier in Azure Blob Storage
Supporto nativo a JSON in SQL Server 2025
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Cache temporanea in Javascript con oggetti
Impostare automaticamente l'altezza del font tramite CSS
Escludere alcuni file da GitHub Copilot
Running workloads and operations with Azure Kubernetes Service
Usare i generics di C# con la clausola nameof in modo semplificato


