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

  • 相关阅读:
    【HDOJ】3660 Alice and Bob's Trip
    【HDOJ】3652 B-number
    【HDOJ】4057 Rescue the Rabbit
    【HDOJ】2155 小黑的镇魂曲
    【HDOJ】2828 Lamp
    【HDOJ】3275 Light
    【HDOJ】2430 Beans
    【POJ】2823 Sliding Window
    CE下可用的3G
    RIL开发过程
  • 原文地址:https://www.cnblogs.com/flywing/p/8692596.html
Copyright © 2011-2022 走看看