2013-10-25 6 views
18

Глядя на стандартный новый проект MVC 5 в Visual Studio 2013, вы можете видеть, что теперь он включает OWIN.Показывает ли OWIN MVC (ASP.NET MVC)?

Существует новый класс запуска OWIN, который настраивает auth, однако я не вижу, как/где MVC5 зарегистрирован в OWIN. Где это происходит?

Я предполагаю, что все запросы проходят через OWIN перед входом в конвейер MVC. Почему еще они включали OWIN?

  • Обратите внимание: я не спрашиваю, как настроен OWIN, что легко объяснить в документах. Меня интересует, как MVC5 использует OWIN.
+0

Ну, похоже, что ASP.NET vNEXT будет использовать OWIN и проект Helios. –

+0

это просто предположение или вы нашли источник, говорящий, что OWIN будет использоваться? Если бы вы нашли источник, не могли бы вы поделиться им? – Rune

+0

В этом сообщении вы можете увидеть Helios (который работает на OWIN и заменяет System.Web), и был подтвержден унифицированный MVC/Web.Api. http://davidfowl.com/asp-net-vnext/ –

ответ

17

Обновление: Я выяснил, почему MVC5 использует OWIN, хотя запросы обрабатываются конвейером IIS вместо OWIN.

MVC5 не проходит через OWIN, однако похоже, что это может измениться в будущем. Вместо этого MVC в настоящее время все еще нуждается в прохождении через интегрированный трубопровод IIS. Причина, по которой OWIN включена в проект MVC по умолчанию, заключается в том, что MVC5 может использовать компоненты промежуточного программного обеспечения Owin.

Из OWIN middleware in the iis integrated pipeline:

Для того, чтобы OMC, чтобы принять участие в этом же, на основе событий исполнения заказа, катана выполнения кода сканирует конфигурации запуска и выписывает каждый из компонентов промежуточного для событие интегрированного конвейера.

Это изменение в ASP.NET vNext как Web.Api и MVC были объединены и оставлены System.Web в пользу OWIN и проекта Helios.

8
  • MVC 5 не зарегистрирован в OWIN.
  • OWIN зарегистрирован для запуска перед применением (PreApplicationStartMethod).
  • И при предварительном запуске приложения зарегистрированный класс OwinStartup используется для настройки текущего приложения.

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

выше линии в startup.cs загрузит класс для настройки Owin. OWIN Startup class detection

+0

Это не объясняет, почему используется OWIN. Причина, по которой OWIN даже включена, заключается в использовании компонентов промежуточного программного обеспечения OWIN для аутентификации. Таким образом, приложения OWIN и IIS могут использовать одни и те же библиотеки аутентификации. –

+1

«как/где MVC5 зарегистрирован в OWIN. Где это происходит?» В этом контексте мой ответ уместен. Ваш вопрос не представляет собой контекст «Почему». Удивительно ... – jd4u

+0

Добавление «почему» сделает ваш ответ более полным. Я думаю, странно, что MVC может потребовать OWIN для чего-то, но не может объяснить, что. Я явно пытался понять, почему OWIN теперь включен. –