ASP.NET Core 过滤器

💡 原文中文,约14200字,阅读约需34分钟。
📝

内容提要

本文介绍了ASP.NET Core中的过滤器,包括内置和自定义过滤器,以及过滤器的执行顺序和常用类型。提供了例子来演示如何使用过滤器,包括Authorization、Action、Result、混合Action/Result和Exception过滤器。读者可以了解如何在ASP.NET Core应用程序中使用过滤器来实现不同的功能。

🎯

关键要点

  • ASP.NET Core中的过滤器在请求处理管道的特定阶段前后运行,内置了多种过滤器,如授权、日志、缓存和异常处理。
  • 中间件与过滤器的区别在于,中间件处理所有请求,而过滤器仅处理MVC管道中的请求。
  • 创建一个MVC项目以了解过滤器的使用,使用[RequireHttps]特性来阻止非HTTPS请求。
  • ASP.NET Core中常用的过滤器类型包括Authorization、Action、Result和Exception,每种过滤器可以同步和异步工作。
  • 过滤器的执行顺序为:Authorization -> Action -> Result,Exception过滤器在发生异常时执行。
  • Authorization过滤器用于授权和安全策略,使用IAuthorizationFilter或IAsyncAuthorizationFilter接口实现。
  • 自定义Authorization过滤器可以限制非HTTPS请求,使用HttpOnly类实现。
  • Action过滤器在Action方法前后执行,使用IActionFilter或IAsyncActionFilter接口实现。
  • 自定义Action过滤器可以测量Action方法的执行时间,使用TimeElapsed类实现。
  • Result过滤器在Action方法成功执行前后执行,使用IResultFilter或IAsyncResultFilter接口实现。
  • 混合Action/Result过滤器可以共享数据,使用ActionFilterAttribute类实现。
  • Exception过滤器用于捕获异常,使用IExceptionFilter或IAsyncExceptionFilter接口实现。
  • 自定义异常过滤器可以捕获异常并返回错误信息,使用CatchError类实现。
➡️

继续阅读