zoukankan      html  css  js  c++  java
  • MVC中的过滤器/拦截器怎么写

    创建一个AuthenticateFilterAttribute(即过滤器/拦截器)

    引用System.Web.Mvc;

    public class AuthenticateFilterAttribute: ActionFilterAttribute,IActionFilter
        {
            public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                // Action或Controller上定义了[AllowAnonymousAttribute]
                var hasAllowAnymous = filterContext.ActionDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true) ||
                                      filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(AllowAnonymousAttribute), true);
    
                if (hasAllowAnymous) return; // 不需要登录,则通过。
    
                var session = filterContext.HttpContext.Session;
    
                if (session == null) return;
    
                //下面就是写过滤的条件,一般来说就是判断session是否过期,跳转到登陆页面。
                //以及判断角色,身份
    
    
    
    
            }
        }        
    AuthenticateFilterAttribute.cs

    在FilterConfig.cs中添加指定的筛选器

    public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new AuthenticateFilterAttribute());
            }
        }
    FilterConfig.cs

    在Global.asax中获取或设置全局筛选器集合。

    public class MvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start()
            {
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            }
        }
    View Code

    好了,这下子就完成了。在用户进行某些操作之前判断是否授权。

  • 相关阅读:
    学JAVA第十一天,属性与方法
    学JAVA第十天,一维数组及二维数组的使用。
    限制input[type=number]的输入位数策略整理
    淘宝NPM源的使用
    webpack之loader实践
    5月份开发问题整理
    前后端分离思考
    js 导航栏多项点击显示下拉菜单代码
    阵容首发
    jquery中的ajax请求到php(学生笔记)
  • 原文地址:https://www.cnblogs.com/shenymou/p/filter.html
Copyright © 2011-2022 走看看