ich es zu verstehen sind gekommen:
Einige Informationen über die Beziehung zwischen ASP.NET-Core Middleware und OWIN Middleware finden Sie hier als dies; ASP.NET Core Middleware ist auf einer höheren Ebene als OWIN Middleware, die auf einer niedrigeren Ebene ist.
ASP.NET Core Middleware hat den Vorteil, dass es viel einfacher ist, eine Middleware zu entwickeln, wenn Sie in der HttpContext
übergeben werden, die Sie verwenden können. Der Nachteil ist, dass die Middleware, die Sie entwickeln, von ASP.NET Core abhängt.
OWIN ist auf einer niedrigeren Ebene und Sie erhalten eine OWIN-Umgebung, die eine IDictionary<string, object>
ist. Der Vorteil ist, dass es nicht an ASP.NET gebunden ist und daher auf jedem OWIN-Server (wie Nowin) laufen kann. Der Nachteil ist, dass es mehr Aufwand für den Code erfordert, da Sie einen eigenen Kontext aus der OWIN-Umgebung erstellen oder das OWIN-Umgebungswörterbuch direkt verwenden müssen und alle OWIN keys und Objekte verfolgen müssen.
Edit: Sie müssen OWIN Schlüssel nicht selbst verfolgen, können Sie die OwinEnvironment
Klasse verwenden, um eine stark typisierte Umgebung zu erhalten.
var environment = new OwinEnvironment(HttpContext);
var features = new OwinFeatureCollection(environment);
Mark. 'OwinEnvironment' ist ein Konzept von' Microsoft.AspNetCore.Owin' und keine reine OWIN-Sache. Ähnlich wie 'Owin Middleware' ist eine Katana-Sache und keine reine OWIN-Sache. –