C# 无法在asp net核心web API中获取请求标头

C# 无法在asp net核心web API中获取请求标头,c#,asp.net-core,asp.net-web-api2,C#,Asp.net Core,Asp.net Web Api2,我正在尝试在asp net core web api中创建一个自定义过滤器,如下所示,但无法获取标题信息 internal class BasicAuthFilterAttribute : ActionFilterAttribute { private StringValues xyz; public override void OnActionExecuting(ActionExecutingContext actionContext) { var authHeader

我正在尝试在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,但是我可以看到
标题
包含“基本”标题。因为我是ASP.NET核心的新手,所以谁能告诉我我可能做错了什么

下面是标题的外观。
感谢大家的宝贵意见,但下面的代码工作正常

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

这个怎么样?我们应该接受新的变量。:)

调用方法:

 var Authorization = Request.GetHeader("Authorization");

可能您应该在键中检查“基本”,而不是在值中检查?@AleksejVasinov谢谢,您是右键应该是“授权”而不是“基本”。左侧是键,右侧是值。如果您使用C#7,您可以跳过声明变量:actionContext HttpContext.Request.Headers.TryGetValue(“授权”,out var unittId);如果检查空值,则返回一个<代码> StrugValue<代码>对象,尽管它具有隐式类型转换,但需要使用例如<代码> IF(授权== StrugValtual.Office)< /C>
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");