如何将 OWIN 身份验证中间件与 WebAPI MessageHandler 堆栈集成?

How can I integrate OWIN authentication middleware with a WebAPI MessageHandler stack?

我有一个 WebAPI 2.2 应用程序,我在启动时通过配置设置了一堆自定义消息处理程序(例如 config.MessageHandlers.Add())。我不想放弃对我的管道使用 MessageHandlers,但想使用 Microsoft.Owin.Security 中的一些安全实现。我如何将 Owin 中间件与我的 MessageHandlers 集成,以便我的管道保持原样,但 Owin 安全中间件用于身份验证?

您不能将 OWIN 中间件放入 WebApi piepline,但可以将它们放在它的前面。如果您 运行 宁在 IIS 之外,那么已经建议在 OWIN/Katana 之上使用 运行 WebApi,如下所示:http://aspnet.codeplex.com/SourceControl/latest#Samples/Katana/WebApi/Startup.cs

在 IIS 内部,您可以 运行 OWIN/Katana 在 WebApi 前面,就像在 MVC 前面一样,在这里您可以独立设置两者,然后首先设置 OWIN 运行。 Visual Studio 中已有模板为您设置。