Dans ASP.Net Core 2.0, j'essaie de valider les en-têtes de demande entrants dans un middleware personnalisé.
Le problème est que je ne sais pas comment extraire tous les en-têtes de paires clé-valeur. Les en-têtes dont j'ai besoin sont stockés dans une propriété protégée
protected Dictionary<string, stringValues> MaybeUnknown
Ma classe de middleware ressemble à ceci jusqu'à présent:
public class HeaderValidation
{
private readonly RequestDelegate _next;
public HeaderValidation(RequestDelegate next)
{
_next = next;
}
public async Task Invoke(HttpContext httpContext)
{
IHeaderDictionary headers = httpContext.Request.Headers; // at runtime headers are of type FrameRequestHeaders
// How to get the key-value-pair headers?
// "protected Dictionary<string, stringValues> MaybeUnknown" from headers is inaccessbile due to its protection level
// Casting headers as Dictionary<string, StringValues> results in null
await _next.Invoke(httpContext);
}
}
Mon objectif est d'extraire tous les en-têtes de demande et pas seulement quelques en-têtes sélectionnés pour lesquels je dois connaître les clés spécifiques.
httpContext.Request.Headers
est un Dictionary
. Vous pouvez renvoyer la valeur d'un en-tête en passant le nom de l'en-tête comme clé:
context.Request.Headers["Connection"].ToString()