zoukankan      html  css  js  c++  java
  • ASP.NET Core 中的筛选器

    筛选器都是以AOP(面向方面编程)的方式来设计的。通过使用 ASP.NET Core 中的筛选器,可在请求处理管道中的特定阶段之前或之后运行代码。可以创建自定义筛选器,用于处理横切关注点。 横切关注点的示例包括错误处理、缓存、配置、授权和日志记录。

    筛选器类型

    每种筛选器类型都在筛选器管道中的不同阶段执行:

    • 授权筛选器最先运行,用于确定是否已针对请求为用户授权。 如果请求未获授权,授权筛选器可以让管道短路。

    • 资源筛选器:

      • 授权后运行。
      • OnResourceExecuting 在筛选器管道的其余阶段之前运行代码。
      • OnResourceExecuted 在管道的其余阶段完成之后运行代码。
    • 操作筛选器:

      • 在调用操作方法之前和之后立即运行代码。
      • 可以更改传递到操作中的参数。
      • 可以更改从操作返回的结果。
      • 不可在 Razor Pages 中使用。
    • 异常筛选器在向响应正文写入任何内容之前,对未经处理的异常应用全局策略。

    • 结果筛选器在执行操作结果之前和之后立即运行代码。 仅当操作方法成功执行时,它们才会运行。 对于必须围绕视图或格式化程序的执行的逻辑,它们很有用。

    授权筛选器:

    • 是筛选器管道中运行的第一个筛选器。
    • 控制对操作方法的访问。
    • 具有在它之前的执行的方法,但没有之后执行的方法。

    自定义授权筛选器需要自定义授权框架。 建议配置授权策略或编写自定义授权策略,而不是编写自定义筛选器。

    资源筛选器:

    • 实现 IResourceFilter 或 IAsyncResourceFilter 接口。
    • 执行会覆盖筛选器管道的绝大部分。
    • 只有授权筛选器在资源筛选器之前运行。

    操作筛选器:

    • 实现 IActionFilter 或 IAsyncActionFilter 接口。
    • 它们的执行围绕着操作方法的执行。

    异常筛选器:

    • 实现 IExceptionFilter 或 IAsyncExceptionFilter。
    • 可用于实现常见的错误处理策略。

    结果筛选器:

    • 实现 IResultFilter 或  IAsyncResultFilter。
    • 它们的执行围绕着操作结果的执行。

    参考:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/filters?view=aspnetcore-3.1

  • 相关阅读:
    BZOJ1293: [SCOI2009]生日礼物
    BZOJ2326: [HNOI2011]数学作业
    BZOJ1179: [Apio2009]Atm
    树链剖分的一个小细节
    BZOJ1146: [CTSC2008]网络管理Network
    BZOJ1984: 月下“毛景树”
    BZOJ3196: Tyvj 1730 二逼平衡树
    BZOJ1579: [Usaco2009 Feb]Revamping Trails 道路升级
    BZOJ1674: [Usaco2005]Part Acquisition
    Babel 在浏览器环境使用方法
  • 原文地址:https://www.cnblogs.com/xianyv/p/12732218.html
Copyright © 2011-2022 走看看