2016-11-26 15 views
0

私はweb api mvc 5を使用しています。私はAPIコールロギングを行っています。私が知りたいのですがどのようなスニペットAPIロギングでベアラアクセストークンを取得する

 protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) 
    { 
     var corrId = string.Format("{0}{1}", DateTime.Now.Ticks, Thread.CurrentThread.ManagedThreadId); 
     var requestInfo = string.Format("{0};{1}", request.Method, request.RequestUri); 

     var requestMessage = await request.Content.ReadAsByteArrayAsync(); 

     await IncommingMessageAsync(corrId, requestInfo, requestMessage); 

     var response = await base.SendAsync(request, cancellationToken); 

     byte[] responseMessage; 

     if (response.IsSuccessStatusCode) 
      responseMessage = await response.Content.ReadAsByteArrayAsync(); 
     else 
      responseMessage = Encoding.UTF8.GetBytes(response.ReasonPhrase); 

     await OutgoingMessageAsync(corrId, requestInfo, responseMessage); 

     return response; 
    } 

される続いて、要求が使用認証済みである場合、私はベアラトークンを得ることができる方法です。私はHttpContext.Current.Userを試しましたが、常にnullです。

ありがとうございます。

+0

http://stackoverflow.com/a/18384253/4753489 –

答えて

0

あなたのトークンが認証キーとしてヘッダに来ている、あなたはリクエストのヘッダからベアラトークンを引くことができますと仮定:

if (Request.Headers.Contains("Authorization")) 
     var bearerToken = Request.Headers.GetValues("Authorization").FirstOrDefault(); 
関連する問題