在DelegatingHandler ASP.NET Web API中添加BearerToken授权标头

时间:2015-09-14 12:12:58

标签: c# asp.net-web-api owin bearer-token delegatinghandler

为什么我在自定义DelegatingHandler中将授权标头与权限令牌添加到没有此标头的请求中,我得到响应:需要401授权?

public class ProxyHandler : DelegatingHandler
{
   protected async override Task<HttpResponseMessage> SendAsync(
        HttpRequestMessage request, CancellationToken cancellationToken)
   {
        request.Headers.Add("Authorization", "Bearer rightToken...");
        return response = await base.SendAsync(request, cancellationToken);
    }
}

如果我使用相同的授权标题发送邮件的请求,我就可以获得200 OK。 enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了答案。 OAuthBearerAuthenticationHandler.cs类中的AuthenticateCoreAsync方法在我的ProxyHandler之前被触发。 在OAuthBearerAuthenticationOptions 中将 AuthenticationMode 从Active更改为Passive 后,在方法base.SendAsync(request,cancellationToken)被触发之后,正在检查标头中的请求令牌。< / p>