2013-10-25 9 views
18

Wenn Sie sich ein neues Standard-MVC 5-Projekt in Visual Studio 2013 ansehen, können Sie sehen, dass es jetzt OWIN enthält.Ruft OWIN noch MVC (ASP.NET MVC) auf?

Es gibt eine neue OWIN Startup-Klasse, die auth konfiguriert, aber ich kann nicht sehen, wie/wo MVC5 bei OWIN registriert ist. Wo passiert das?

Ich gehe hier davon aus, dass alle Anfragen durch OWIN gehen, bevor sie in die MVC-Pipeline eintreten. Warum sonst würden sie OWIN einschließen?

  • Bitte beachten Sie: Ich frage nicht, wie OWIN eingerichtet wird, das ist leicht in den Dokumenten erklärt. Ich bin daran interessiert, wie MVC5 OWIN verwendet.
  • +0

    Nun sieht es so aus, als würde ASP.NET vNEXT OWIN und Projekt Helios verwenden. –

    +0

    ist es nur eine Vermutung oder haben Sie eine Quelle gefunden, die besagt, dass OWIN verwendet wird? Wenn Sie eine Quelle gefunden haben, möchten Sie diese teilen? – Rune

    +0

    In diesem Beitrag können Sie Helios sehen (das auf OWIN läuft und System.Web ersetzt) ​​und eine vereinheitlichte MVC/Web.Api wurde bestätigt. http://davidfowl.com/asp-net-vnext/ –

    Antwort

    17

    Update: Ich habe herausgefunden, warum MVC5 OWIN verwendet, obwohl Anforderungen von der IIS-Pipeline statt von OWIN behandelt werden.

    MVC5 geht nicht durch OWIN, aber es sieht so aus, als könnte sich das in Zukunft ändern. Stattdessen muss MVC derzeit noch die integrierte IIS-Pipeline passieren. Der Grund dafür, dass OWIN im Standard-MVC-Projekt enthalten ist, ist, dass MVC5 die OWIN-Middleware-Komponenten verwenden kann.

    Vom OWIN middleware in the iis integrated pipeline:

    Damit ein OMC in dieser gleichen, ereignisbasierte Bestellausführung zu beteiligen, der Katana-Laufzeitcode-Scans durch die Start Konfiguration und jeden der Middleware-Komponenten abonniert ein integriertes Pipeline-Ereignis.

    Dies ändert in ASP.NET vNext als Web.Api und MVC kombiniert wurden und System.Web für OWIN und Projekt Helios verlassen.

    8
    • MVC 5 ist nicht bei OWIN registriert.
    • OWIN ist für den Start vor der Anwendung registriert (PreApplicationStartMethod).
    • Und bei Pre-Application-Start wird OwinStartup registrierte Klasse verwendet, um die aktuelle Anwendung zu konfigurieren.

    [assembly: OwinStartup(typeof(WebApplication1.Startup))]

    Die obige Zeile in startup.cs wird die Klasse laden OWIN zu konfigurieren. Weitere OWIN Startup class detection

    +0

    Dies erklärt nicht, warum OWIN verwendet wird. Der Grund, warum OWIN sogar enthalten ist, besteht darin, die Freigabe-OWIN-Middlewarekomponenten für die Authentifizierung zu verwenden. Auf diese Weise können OWIN- und IIS-basierte Anwendungen die gleichen Authentifizierungsbibliotheken verwenden. –

    +1

    "wie/wo MVC5 bei OWIN registriert ist. Wo passiert das?" In diesem Zusammenhang ist meine Antwort angemessen. Ihre Frage stellt überhaupt keinen "Warum" Kontext dar. Überraschend ... – jd4u

    +0

    Das Hinzufügen des "Warum" würde Ihre Antwort jedoch vollständiger machen. Ich denke, es ist seltsam, dass MVC OWIN für etwas benötigt, aber nicht erklären kann, was. Ich versuchte eindeutig herauszufinden, warum OWIN jetzt eingeschlossen war. –