2013-10-25 37 views
18

Guardando a un nuovo progetto MVC 5 standard in Visual Studio 2013 è possibile vedere che ora include OWIN.OWIN richiama ancora MVC (ASP.NET MVC)?

C'è una nuova classe di avvio OWIN che configura l'autenticazione, ma non riesco a vedere come/dove MVC5 è registrato con OWIN. Dove succede questo?

Presumo qui che tutte le richieste passino attraverso OWIN prima di entrare nella pipeline MVC. Perché altrimenti includere OWIN?

  • Nota: non sto chiedendo come è configurato OWIN, che è facilmente spiegato nei documenti. Sono interessato a come MVC5 utilizza OWIN.
+0

Sembra che ASP.NET vNEXT utilizzi OWIN e progetti Helios. –

+0

è solo una supposizione o hai trovato una fonte che dice che OWIN sarà usato? Se hai trovato una fonte, ti dispiacerebbe condividerlo? – Rune

+0

In questo post puoi vedere Helios (che gira su OWIN e sostituisce System.Web) e un MVC/Web.Api unificato è stato confermato. http://davidfowl.com/asp-net-vnext/ –

risposta

17

Aggiornamento: ho scoperto perché MVC5 utilizza OWIN anche se le richieste vengono gestite dalla pipeline IIS anziché da OWIN.

MVC5 non passa attraverso OWIN, tuttavia sembra che questo potrebbe cambiare in futuro. Al contrario, MVC attualmente deve ancora passare attraverso la pipeline integrata di IIS. Il motivo per cui OWIN è incluso nel progetto MVC predefinito è che MVC5 possa utilizzare i componenti middleware Owin.

Dal OWIN middleware in the iis integrated pipeline:

Affinché un MCA a partecipare a questo stesso, basato sugli eventi esecuzione ordinamento, le scansioni del codice runtime Katana attraverso la configurazione di avvio e sottoscrive ciascuno dei componenti middleware un evento di pipeline integrato .

Questo cambi in ASP.NET vNext come Web.Api e MVC sono stati combinati e ad abbandonare System.Web a favore di OWIN e del progetto Helios.

8
  • MVC 5 non è registrato con OWIN.
  • OWIN è registrato per l'avvio prima dell'applicazione (PreApplicationStartMethod).
  • E all'avvio dell'applicazione pre-installazione, la classe registrata OwinStartup viene utilizzata per configurare l'applicazione corrente.

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

La linea di cui sopra in startup.cs caricherà la classe per configurare OWIN. OWIN Startup class detection

+0

Questo non spiega perché viene utilizzato OWIN. Il motivo per cui OWIN è incluso è quello di utilizzare la condivisione di componenti middleware OWIN per l'autenticazione. In questo modo sia le applicazioni basate su OWIN che quelle su IIS possono utilizzare le stesse librerie di autenticazione. –

+1

"come/dove MVC5 è registrato con OWIN. Dove si verifica?" In questo contesto, la mia risposta è appropriata. La tua domanda non rappresenta affatto il contesto "Perché". Sorprendente ... – jd4u

+0

Aggiungere il "perché" renderebbe la risposta più completa. Penso che sia strano che MVC abbia bisogno di OWIN per qualcosa, ma non riesce a spiegare cosa. Stavo chiaramente cercando di capire perché OWIN era ora incluso. –