 分类:
    .net
    
    分类:
    .net
过滤器是一种面向切面的变成方式,可以统一的做一些操作,不会影响到原先的逻辑,会让两种逻辑的耦合度非常低。
类似HttpModule(mvc原理里边也用了不少的HttpModule)
解决统一验证是否登录
1:全局应用程序类:
2:baseWebform,baseController
3: HttpModule
创建一个简单的过滤器
过滤器其实就是一个普通的类,但是要必须要实现相应的接口或者继承类
用过滤器的步骤:
1:创建过滤器
2:注册过滤器
过滤器的作用范围:全局,局部
过滤器的作用范围:
全局:
在FilterConfig中注册的就是全局过滤
一个简单验证是否登录的过滤器
public class LoginFilter : IActionFilter
{
    /// <summary>
    /// action执行之后执行
    /// </summary>
    /// <param name="filterContext"></param>
    public void OnActionExecuted(ActionExecutedContext filterContext)
    {
    }
    /// <summary>
    /// action执行之前执行
    /// </summary>
    /// <param name="filterContext"></param>
    public void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //如果是登录本身就放开这个验证
        //获取控制器的名字(固定写法)
        string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
        if (controllerName.ToLower() == "login")
            return;
        //验证是否登录的逻辑
        if (filterContext.HttpContext.Session["username"] == null)
        {
            //没有登录就跳转到登录
            //return RedirectToAction("index", "login");
            //跳转(固定写法)
            filterContext.Result = new RedirectResult("/login/index");
        }
    }
}
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价
    
                    排名
                
                
                    6
                
            
                    文章
                
                
                    6
                
            
                    粉丝
                
                
                    16
                
            
                    评论
                
                
                    8
                
            
            {{item.articleTitle}}
            
    {{item.blogName}} : {{item.content}}
        
            ICP备案  :渝ICP备18016597号-1
        
        
            网站信息:2018-2025TNBLOG.NET
        
        
            技术交流:群号656732739
        
        
            联系我们:contact@tnblog.net
        
        
            公网安备: 50010702506256
50010702506256
        
     50010702506256
50010702506256
         
        
            欢迎加群交流技术
        
     
         
         
        