2017-02-21 63 views
4

我想创建一个自定义筛选器在asp net核心web api是如下但无法获取标题信息。无法获取请求标头在asp网络核心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包含 “基本” 头。因为我是ASP.NET Core中的新成员,所以任何人都可以指导我可能做错了什么?

这里标头的样子。 enter image description here

+1

也许你应该检查键“基本”,而不是值? –

+0

@AleksejVasinov谢谢,你是对的关键应该是“授权”而不是“基本”。 –

+0

左侧是键,右侧是值。 –

回答

8

谢谢大家的宝贵意见,但下面的代码按预期工作。

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

+5

如果您使用C#7,则可以跳过声明变量:actionContext HttpContext.Request.Headers.TryGetValue(“Authorization”,out var unittId); – AFD

0

var xyz = context.HttpContext.Request?.Headers [“Basic”];