zoukankan      html  css  js  c++  java
  • Asp.net Core过滤器

    1. Asp.net Core五类过滤器:Authorization Filter、Resource Filter、Acton Filter、Exception Filter、Result Filter。优先级逐次递减。
    2. 过滤器使用
      1.  
        public class GlobalFiler: Attribute,IAuthorizationFilter
            {
                public void OnAuthorization(AuthorizationFilterContext context)
                {
        context.Result = new JsonResult("全局权限设置"); } }
        public class MyFilter : Attribute,IActionFilter,IOrderedFilter { public int Order { get; set; } public void OnActionExecuted(ActionExecutedContext context) { } public void OnActionExecuting(ActionExecutingContext context) { } }
        //ActionFilterAttribute继承了Attribute、IActionFilter、IOrderedFilter等
        public class MyFilter2 : ActionFilterAttribute {
           public override void OnActionExecuting(ActionExecutingContext context) {
        //如果失败,页面提示
        context.Result = new JsonResult("MyFilter2设置,无权限访问"); } }
    3. 过滤器注册,分为两种:全局注册和用Attribute区域注册,用在特定Action上。
      1. 全局注册Startup.cs
        public void ConfigureServices(IServiceCollection services)
                {
                    services.AddMvc(config => config.Filters.Add(new GlobalFiler()));
                    //services.AddMvc(config => config.Filters.Add(typeof(GlobalFiler)));
                }
      2. 区域注册
        [Route("api/[controller]")]
            [MyFilter(Order = 1)]
            public class ValuesController : Controller
            {
                // GET api/values
                [HttpGet]
                [MyFilter2(Order = 0)]
                public IEnumerable<string> Get()
                {
                    return new string[] { "value1", "value2" };
                }
            }
    4. 过滤器执行顺序
      1. 默认执行顺序:全局过滤器优先于控制器过滤器,控制器过滤器优先于Action方法过滤器。  
      2. 通过IOrderedFilter覆盖默认执行顺序,此接口公开Order属性表示优先级,Order值越小优先级越高。

      参考文档:https://www.cnblogs.com/tdfblog/p/filters-in-aspnet-core-mvc.html

  • 相关阅读:
    面向对象七大基本原则
    JS面向对象的七大基本原则(里氏替换/依赖倒置)
    JS面向对象的七大基本原则(单一/开闭)
    flex均匀布局
    Vue在IDEA的简约安装
    事务及数据表设计
    关于序列化与反序列化
    SQL查询关键字用法
    IO流
    cookie与session
  • 原文地址:https://www.cnblogs.com/flywing/p/8692596.html
Copyright © 2011-2022 走看看