web-dev-qa-db-ja.com

ASPネットコアWeb APIでリクエストヘッダーを取得できません

私は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が初めてなので、誰かが私が間違っている可能性があることをガイドできますか?

ヘッダーは次のようになります。 enter image description here

14
Jyotish Singh

貴重なご意見をありがとうございましたが、以下のコードは期待どおりに機能しました。

actionContext.HttpContext.Request.Headers.TryGetValue("Authorization", out authorizationToken);
26
Jyotish Singh

これはどう?新しい変数を採用する必要があります。 :)

bool tryGetValue = actionContext.ActionArguments.TryGetValue("data", out data);
1
Foyzul Karim
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");
0
impotunator
var xyz = context.HttpContext.Request?.Headers["Basic"];
0
ben yip