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这个页面


    先注释掉

    使用全局
    两种方式

    第三种:


    视频作者习惯于最后一种


    执行顺序


  • 相关阅读:
    【Java】《Java程序设计基础教程》第三章学习
    【Python】编程小白的第一本python(最基本的魔法函数)
    【Python】编程小白的第一本python(基础中的基础)
    bootstrap中的col-xs-*,col-sm-*,col-md-* 关系
    java基础面试题总结
    人生中第一次面试(阿里一面)
    阿里云服务器ip:端口号无法访问
    redis基本指令
    linux基本指令
    centos安装redis
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10946790.html
Copyright © 2011-2022 走看看