我浏览了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的实际示例。
一些更多的链接,我最终读到了(我将在这里继续添加,当我遇到新的) http://www.cloudidentity.com/blog/2013/07/23/securing-a-web-api-with-windows-azure-ad-and-katana/
更新:也许这就是我正在寻找的http://www.asp.net/aspnet/overview/owin-and-katana/owin-middleware-in-the-iis-integrated-pipeline
When should I use OWIN Katana?
谢谢。
发布于 2014-04-08 09:03:52
1)和3)是正确的,2) HttpModules也是正确的,所以没有差别。关键是OWIN没有非常复杂的ASP.NET请求基础结构,并且它与主机无关。实际上,如果您愿意,可以在另一个.NET应用程序中托管OWIN应用程序。
就我而言,如果您要使用建立在ASP.NET MVC、WebApi等基础之上的现代基础设施,那么就不要使用HttpModules了。它们是很久以前建造的基础设施的一部分,与现代web开发人员面临的问题非常不同。在OWIN下集成不同的服务通常也要容易得多(而且内置的OAuth身份验证和相似技术非常方便)。
现在,如果您仍在使用“旧”WebForms模型开发web应用程序,那么HttpModules migth仍然是一个更好的选择--在OWIN中托管WebForms是可能的(而且可能很好),但好处会逐渐消失。但是,如果您想要一个瘦的HTTP端点,那么OWIN就太棒了;与旧的ASP.NET基础结构相比,它非常轻量级和简单。事实上,它与IIS并没有很强的联系,这只是顶上的一颗樱桃。就我个人而言,我仍然在IIS中使用它,尽管我肯定可以在不同的服务中看到轻量级HTTP服务器的使用。此外,不要忘记IIS版本与Windows版本相关联--使用所有最新特性通常需要在IIS上进行服务器升级。
https://stackoverflow.com/questions/22910780
复制相似问题