使用 OWIN 将 ASP.NET MVC 应用程序连接到 Azure AD 或使用默认模板

Use OWIN to connect an ASP.NET MVC application to Azure AD or use the default templates

ASP.NET MVC 5 应用程序中组织帐户的默认模板使用 HttpModules 来处理来自 Azure AD 的响应并创建相应的 ClaimsIdentity。查看 ADAL 库的示例,我发现也可以将 OWIN 中间件用于相同目的。哪种方法更好?为什么模板使用 HttpModules 而不是像个人帐户模板那样使用 OWIN 中间件?

谢谢!

我认为 HttpModules 是处理管道中 AuthZ 等事物的旧方法。 HttpModules 是与 Web 表单同时构建的基础结构的一部分。

如果您正在制作现代网络 api,例如 Web Api 或 MVC 应用程序,我建议忘记 HttpModule 并使用 Owin 中间件,但如果您使用 Webforms,则最好使用 HttpModules (虽然可以在 webforms 中托管 OWIN,但您不会享受到 OWIN 的一些好处)。

此处有 OWIN 概述,您可以在其中了解使用 OWIN 中间件的一些要点:

http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana

此外,HttpModules 是基于一些发生的事件,但 OWIN 挑战独立于这些事件。

关于你问的为什么模板使用 HttpModules 的问题,我不太确定,但我可以猜到,因为它们在你需要的 dll 方面更轻量 运行样本..