Owin中间件VS WebAPI DelegatingHandler

Dan*_*inu 16 .net c# asp.net-web-api owin

我正在阅读文章和检查exmaples,我看到Owin Middlewares与WebAPI DelegatingHandler的使用方式相同:记录传入的请求,验证标题等等.

我唯一的理解是Owin Middleware出现在管道中的DelegatingHandlers之前.因此,如果您创建一个Owin中间件,让我们说用户授权,您就可以在较低级别更快地拒绝禁止请求.

这两者有什么不同,或者使用它们中的任何优点/缺点?

tlp*_*tlp 8

我也在研究这个以找出不同之处。我可以想出一些可能对你有帮助的想法。我想他们的目的是一样的,没有太大的不同。但是与 owin Owin 中间件相比,DelegatingHandler 是旧机制:

  1. 这样做的目的是将服务器和应用程序分开。通过这样做,您可以将大量模块注入您的管道(称为 owinmiddleware)。
  2. 通过这样做,您可以在 httprequest 的早期阶段拦截请求,然后 web api 的 HttpMessageHandler 可以处理它。例如。您可以在创建 http 控制器之前读取用于初始化依赖项的数据。
  3. 通过做模块,可以复用asp.net core 所关注的中间件。

委托处理程序:

  1. 它是 web api 的一部分。在这个级别,我们有 HttpRequestMessage、HttpResponseMessage,所以我们可以轻松地使用它们而不是 owin 中间件进行操作(例如,您可以从请求消息正文中读取数据,而不必担心我们做了一些影响消息的事情)

  2. 通过这样做,实际上,您强烈依赖于 web api 管道。我并不是说你不能在未来重复使用它,但它可能会发生。

希望它为您提供有关这方面的有用信息。

谢谢,