18

查看 Visual Studio 2013 中的标准新 MVC 5 项目,您可以看到它现在包含 OWIN。

有一个新的 OWIN Startup 类可以配置身份验证,但是我看不到 MVC5 是如何/在哪里注册到 OWIN 的。这发生在哪里?

我在这里假设所有请求在进入 MVC 管道之前都通过 OWIN。他们为什么还要包括 OWIN?

  • 请注意:我不是在问如何设置 OWIN,这在文档中很容易解释。我对 MVC5 如何使用 OWIN 很感兴趣。
4

2 回答 2

18

更新:我弄清楚了为什么 MVC5 使用 OWIN,即使请求是由 IIS 管道而不是 OWIN 处理的。

MVC5 不通过 OWIN,但看起来这在未来可能会改变。相反,MVC 目前仍然需要通过 IIS 集成管道。OWIN 包含在默认 MVC 项目中的原因是 MVC5 可以使用 Owin 中间件组件。

iis 集成管道中的 OWIN 中间件

为了让 OMC 参与同样的基于事件的执行排序,Katana 运行时代码会扫描启动配置并将每个中间件组件订阅到集成的管道事件。

这在ASP.NET vNext中确实发生了变化,因为 Web.Api 和 MVC 已被合并并放弃 System.Web 以支持 OWIN 和项目 Helios。

于 2013-10-26T00:12:43.747 回答
8
  • MVC 5 未向 OWIN 注册。
  • OWIN 注册在应用程序之前启动 ( PreApplicationStartMethod)。
  • 在 Pre-application-startup 时,OwinStartup 注册类用于配置当前应用程序。

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

上面的startup.cs行将加载类来配置 OWIN。进一步看OWIN 启动类检测

于 2013-10-25T10:07:01.883 回答