2017-11-02 6 views
0

Ich habe versucht, meine eigene Middleware hinzufügen, es funktioniert nicht :-)Warum funktioniert meine Middleware nicht?

public partial class Startup 
{ 
    public void Configuration(IAppBuilder app) 
    { 
     System.Diagnostics.Debug.WriteLine("OWIN IS WORKING"); 

     app.Use<CustomMiddleware>(); 
    } 
} 

public class CustomMiddleware 
{ 
    public async Task Invoke(HttpContext context) 
    { 
     string token = context.Request.Headers["Authorization"]; 
    } 
} 

Die Console.WriteLine ist, damit es die Konfiguration per Anfrage an den Server betritt, aber meine CustomMiddleware Invoke aint ausgelöst.

Anya Anhaltspunkt?

+0

Sie sollten wirklich einen Konstruktor in der 'CustomMiddleware' Klasse, die in dem nächsten Middleware-Elemente nimmt und ruft sie in Folge. Andernfalls stoppt Ihre Pipeline hier. – DavidG

+0

@DavidG Guter Punkt. Und wie soll ich ...? Ich wollte nur eine Middleware erstellen, die prüft, ob der Header Content-Type gesetzt ist. wenn nicht zurück 400 – fUrious

+0

Ist dies für ASP.Net Core? – DavidG

Antwort

0

Sie brauchen Konstruktor haben nächste delegate.

So sollte Ihr Code wie unten ändern:

public class CustomMiddleware 
{ 
    private readonly RequestDelegate _next; 

    public CustomMiddleware(RequestDelegate next) 
    { 
     _next = next; 
    } 

    public async Task Invoke(HttpContext context) 
    { 
     string token = context.Request.Headers["Authorization"]; 
     await _next(); 
    } 
} 
Verwandte Themen