ASP.Net Core 2.0では、カスタムミドルウェアで着信要求ヘッダーを検証しようとしています。
問題は、すべてのキーと値のペアのヘッダーを抽出する方法がないことです。必要なヘッダーは保護されたプロパティに保存されています
protected Dictionary<string, stringValues> MaybeUnknown
これまでのところ、私のミドルウェアクラスは次のようになります。
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);
}
}
私の目標は、特定のキーを知る必要があるいくつかの選択されたヘッダーだけでなく、すべての要求ヘッダーを抽出することです。
httpContext.Request.Headers
はDictionary
です。ヘッダー名をキーとして渡すことで、ヘッダーの値を返すことができます。
context.Request.Headers["Connection"].ToString()