zoukankan      html  css  js  c++  java
  • ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器


    在MVC的请求管道 并不是  asp.net core的请求管道。所以说Filter是专用于MVC的
    贯穿特性,横穿关注点。比如授权、日志


    这里的Authorize其实就是一个Filter,主要用来授权的


    比如这个Filter,我们要求必须使用Https才可以访问






    授权在整个管道的最前面
    action过滤器是在Action被调用之前和之后,这个时候ModelBing已经发生了。绑定完之后就可以操纵这些参数了。
    Rsult:在Action的IActionResult之前和之后,通过它可以控制结果的执行,也可以短路结果的执行



    对应的五种类型有物种的子接口


    新建一个Filter的文件夹

    LogAsyncResourceFilter 这个过滤器主要用来做日志

    F12 看一下IResourceFilter这个接口的源码,接口就是实现的IFilterMetadata这个接口。

    所以我们只需要实现IResourceFilter 就可以了。实现接口的两个方法

    OnResourceExecuting是在授权过滤器之后,参数上下文包含了httpContext还有路由的一些细节。以及当前这个Action的信息。
    因为这个Filter可以作用于Action
     

    OnResourceExecuted:MVC管道剩余部门执行完后,才会执行。参数Context和上面不一样,比如说还返回了ActionResult的信息
    

    异步版本

    它有个参数是Delegate委托next里面包装着整个MVC剩余的管道


    执行next方法 就是执行下一步的操作。这样就和同步的版本对应上了




    所有的管道过滤器调用完成之后调用最后这句

    尽量还是使用同步的版本

    应用Filter




    还需要继承Attribute

    异步的也需要继承



    运行页面查看控制台:



    应用Controller级别


    打开默认页面后,再访问以下Privacy这个页面


    先注释掉

    使用全局
    两种方式

    第三种:


    视频作者习惯于最后一种


    执行顺序


  • 相关阅读:
    DB2 for Z/os Statement prepare
    Foreign key (referential) constraints on DB2 LUW v105
    复制Informational constraints on LUW DB2 v105
    DB2 SQL Mixed data in character strings
    DB2 create partitioned table
    MVC中使用EF的技巧集(一)
    Asp.Net MVC 开发技巧(二)
    Linq使用技巧及查询示例(一)
    Asp.Net MVC 开发技巧(一)
    Asp.Net MVC Identity 2.2.1 使用技巧(八)
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10946790.html
Copyright © 2011-2022 走看看