私はasp net core web apiでカスタムフィルターを作成しようとしていますが、これは以下のとおりですがヘッダー情報を取得できません。
internal class BasicAuthFilterAttribute : ActionFilterAttribute
{
private StringValues xyz;
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
var authHeader = actionContext.HttpContext.Request.Headers.TryGetValue("Basic", out xyz);
}
}
TryGetValue
は常にfalseを返しますが、Headers
には「Basic」ヘッダーが含まれています。私はASP.NET Coreが初めてなので、誰かが私が間違っている可能性があることをガイドできますか?
貴重なご意見をありがとうございましたが、以下のコードは期待どおりに機能しました。
actionContext.HttpContext.Request.Headers.TryGetValue("Authorization", out authorizationToken);
これはどう?新しい変数を採用する必要があります。 :)
bool tryGetValue = actionContext.ActionArguments.TryGetValue("data", out data);
public static class HttpRequestExtension
{
public static string GetHeader(this HttpRequest request, string key)
{
return request.Headers.FirstOrDefault(x => x.Key == key).Value.FirstOrDefault();
}
}
メソッドの呼び出し:
var Authorization = Request.GetHeader("Authorization");
var xyz = context.HttpContext.Request?.Headers["Basic"];