Wie protokollieren wir Authentifizierungstokenanforderungen in der ASP.NET-Web-API?

8

Wir haben eine ASP.NET-Web-Api-Anwendung, die OAuth-Bearer-Tokens für die Authentifizierung verwendet, für die wir die Anforderung / Antwort-Protokollierung implementieren möchten.

Grundsätzlich funktioniert es so:
1. Benutzer sendet eine Anfrage an "/ authentifizieren" und empfängt ein Authentifizierungs-Token
2. Der Benutzer verwendet dieses Authentifizierungstoken dann für Anforderungen an die freigelegten API-Methoden.

Um Anforderungen an die exponierten API-Methoden zu protokollieren, verwenden wir eine DelegatingHandler , die einwandfrei funktioniert.

Anfragen, die auf "/ authenticate" gestellt werden, werden jedoch nicht von der DelegatingHandler -Implementierung erfasst.

Gibt es einen anderen Ansatz für das Protokollieren von Anforderungen für Tokens?

%Vor%

BEARBEITEN mit OAuth-Code

%Vor%     
thiag0 13.06.2016, 14:42
quelle

1 Antwort

2

Sie installieren OWIN-Middleware , um Token vor der WebAPI-Middleware.

%Vor%

Die DelegatingHandler versuchen Sie zu verwenden, um die Anfrage zu protokollieren Teil der Web API Middleware und wird nie erreicht, da die Token ausstellende Middleware die Anfrage bearbeitet und die Middleware nicht weiter in der Pipeline aufruft.

Verwenden Sie anstelle von DelegatingHandler die folgende Middleware und installieren Sie sie vor der Token-Middleware.

%Vor%

Um die Middleware zu installieren, fügen Sie einfach die Anweisung app.Use(typeof (RequestLoggerMiddleware)); vor der app.UseOAuthBearerTokens -Anweisung in Ihrem Startup.cs ein.

    
MvdD 15.06.2016, 21:50
quelle