首页 文章

HTTP模块和OWIN中间件之间的区别

提问于
浏览
15

我经历了http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana,并想知道HTTP模块和owin中间件有什么区别 . 我能想到的一些指针是

1)Owin中间件将应用程序与主机/服务器分离 . 因此,我不再需要将我的应用程序逻辑专门挂钩到System.Web

2)Owin中间件按添加顺序执行(不确定HttpModules是否也适用;可能取决于我在web.config中添加它们的方式)

3)HttpModules帮助我附加特定于应用程序事件的代码 . Owin中间件独立于这些事件

另请告诉我使用OWIN模块而不是HttpModule的实际示例 .

Some more links i ended up reading (当我遇到新的时候,我会一直在这里添加)http://www.cloudidentity.com/blog/2013/07/23/securing-a-web-api-with-windows-azure-ad-and-katana/

Update :也许这有我正在寻找的答案http://www.asp.net/aspnet/overview/owin-and-katana/owin-middleware-in-the-iis-integrated-pipeline

When should I use OWIN Katana?

谢谢 .

1 回答

  • 17

    1)和3)是正确的,2)对于HttpModules也是如此,所以没有区别 . 关键是OWIN没有非常复杂的ASP.NET请求基础结构,而且它是独立于主机的 . 实际上,如果您愿意,可以在另一个.NET应用程序中托管OWIN应用程序 .

    就我而言,如果您使用基于ASP.NET MVC,WebApi等构建的现代基础架构,请忘记HttpModules . 它们是很久以前构建的基础架构的一部分,并且与现代Web开发人员面临的问题截然不同 . 在OWIN下集成不同的服务通常要容易得多(内置的OAuth身份验证和类似的功能非常方便) .

    现在,如果您仍在使用“旧”WebForms模型开发Web应用程序,HttpModules migth仍然是一个更好的选择 - 在OWIN中托管WebForms是可能的(并且可能运行良好),但好处有点消失 . 但是,如果你想要一个瘦的HTTP endpoints ,那么OWIN真棒!与旧的ASP.NET基础结构相比,它非常轻巧和简单 . 它与IIS没有强烈关系的事实只是一个顶级的樱桃 . 就个人而言,我仍然使用它与IIS,虽然我可以肯定看到在不同的服务内使用轻量级HTTP服务器 . 另外,不要忘记IIS版本与Windows版本绑定 - 使用所有最新功能通常需要在IIS上进行服务器升级 .

相关问题