Owin middleware VS WebAPI DelegatingHandler

本文关键字:DelegatingHandler WebAPI VS middleware Owin | 更新日期: 2023-09-27 17:59:40

我正在阅读相关文章并检查exmaples,我发现Owin中间件的使用与WebAPI DelegatingHandler相同:记录传入请求、验证标头等等

我唯一的理解是,Owin中间件在管道中先于DelegatingHandlers。因此,如果你为用户授权创建了一个Owin中间件,你就可以更快、更低地拒绝被禁止的请求。

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

Owin middleware VS WebAPI DelegatingHandler

我也在研究这一点,以找出区别。我能想出一些可能对你有帮助的主意。我认为他们的目的是一样的,没有太大的不同。但是DelegatingHandler与owin相比是一种古老的机制Owin中间件:

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

委托处理程序:

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

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

希望它能给你一些有用的信息。

谢谢,

owin中间件和web API委派处理程序的区别之一是通过委派处理程序,您可以为特定路由编写自定义消息处理程序。

我最近从这篇博客文章中学习了OWIN中间件的身份验证。

这就是它所说的:

使用OWIN中间件的优势在于中使用的所有框架都可以共享应用例如,如果您使用两个框架,例如ASP.NETWeb API和SignalR,在OWIN中间件中建立的身份将适用于这两个框架。如果使用消息处理程序标识将仅适用于ASP.NET Web API。

看看这个堆叠式的答案。

Owin中间件根据您在IAppBuilder上设置的身份验证类型隐式执行某些身份验证操作。例如:

  1. 从请求头中读取承载Jwt令牌
  2. 与颁发者验证Jwt令牌的签名证书
  3. 检查Jwt令牌的开始和结束时间
  4. 执行在TokenValidationParameters中设置的其他验证
  5. 设置请求上下文的标识"ClaimsPrincipal"

API委派处理程序将整个控制权交给您。以上所有检查都需要在一个或一个处理程序链中手动实现。

相关文章:
  • 没有找到相关文章