2016-08-01 63 views
11

我正在阅读文章和检查exmaples,我看到Owin中间件与WebAPI DelegatingHandler使用相同:记录传入的请求,验证标头等。Owin中间件VS WebAPI DelegatingHandler

我唯一的理解是,Owin中间件在DelegatingHandlers之前来了。因此,如果您创建一个Owin中间件让我们说授权用户,那么您可以更快地拒绝禁止的请求,而且可以在更低的级别上进行。

这两者之间是否有区别,或者使用它们中的任何一个有什么优缺点?

+0

这是一个很好的问题,应该引发一些关于微软和其他在线资源无法澄清的主题的非常有用的答案。 “这种格式可能有太多可能的答案,或者对这种格式来说答案太好,”在这里绝对不是这样。请重新打开。 –

回答

3

我也在研究这个来找出有什么区别。我可以想出一些可以帮助你的想法。我想他们的目的是一样的,没有太大的不同。但是DelegatingHandler是旧的机制比较owin Owin中间件:

  1. 这样做的目的是区分服务器和应用程序。通过这样做,你可以在管道中注入很多模块(称为owinmiddleware)。
  2. 通过这样做,您可以在webprep的HttpMessageHandler可以处理它之前,在httprequest的很早阶段拦截请求。例如。您可以在创建http控制器之前读取用于初始化依赖关系的数据。
  3. 通过模块,您可以重用asp.net核心关注的中间件。

DelegatingHandler:

  1. 这是网页API的一部分。在这个层面上,我们有HttpRequestMessage,HttpResponseMessage,所以我们可以很容易地与那些不是owin中间件(例如,你可以读取请求消息体中的数据,而不用担心我们这样做是影响信息的东西)

  2. 通过操纵这样做,实际上,你非常依赖web API管道。我并不是说你不能在重复使用它,但它可能会发生。

希望它能为您提供有用的信息。

感谢,

0

的owin中间件和Web API之间的差异一个委托处理程序是 通过委托处理程序,您可以编写特定航线自定义消息处理程序。

+0

这远不是一个完整的答案。其他的区别是什么?请详细说明。 –