Application_BeginRequest和DelegatingHandler之间有什么关系

时间:2016-11-21 09:44:43

标签: c# iis asp.net-web-api

授权标头在begin_request和DelegatingHandler.SendAsync之间的某个地方被剥离。我试图调试为什么会发生这种情况。

我的WebApi中有一个委托处理程序,用于验证Json WebToken。不幸的是,当SendAsync(HttpRequestMessage请求,CancellationToken cancellationToken)触发请求的Authorization属性为空时。

但是,在应用程序开始请求中,似乎是从客户端收到授权标题。

{Connection=keep-alive&Authorization=Bearer+ey[Deleted Most]9g&Host=192.168.1.4}

我需要在SendAsync中获取Authorization值,以便我可以验证它。

为什么要删除它?

或者说,在DelegatingHandler可能正在改变标题并将其删除之前发生了什么动作\事件?

Microsoft.AspNet.WebApi版本5.2.3 在IIS版本10.0.10586.0上 在Windows 10 build 10586.494上运行

1 个答案:

答案 0 :(得分:0)

不是一个完整的答案 http://jameschambers.com/2013/11/working-with-iauthenticationfilter-in-the-mvc-5-framework/

回答了调用第三方的委托处理程序之前发生的一部分内容。通过创建ActionFilterAttribute,IAuthenticationFilter,可以截获并以任何自定义方式处理身份验证。