2015-09-14 48 views
2

爲什麼如果我在自定義的DelegatingHandler中添加授權標頭並將右標記添加到沒有此標頭的請求中,我會得到響應:需要401授權?在DelegatingHandler ASP.NET Web API中添加BearerToken授權標頭

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

+0

我不明白第一段。也許你可以將它重新定義爲一個問題,縮短你的句子以便更好地理解。 – Matthias

+0

對不起,我會盡量簡化;) – paulka

+0

你也可以顯示使用你的'DelegatingHandler'的完整代碼示例嗎? –

回答

0

我找到了答案。來自OAuthBearerAuthenticationHandler.cs類的AuthenticateCoreAsync方法在我的ProxyHandler之前觸發。 我將OAuthBearerAuthenticationOptions 中的認證模式從Active激活爲被動後,我的ProxyHandler中的方法base.SendAsync(request,cancellationToken)被觸發後,會檢查標頭中的請求令牌。