关于拦截器模式的理解

在很多框架中都提供了拦截器模式的开发方法,有的是在运行时进行方法的拦截注入,有的是在编译时进行的。今天突然想到MVC的控制器中有这样一种方式:

    public class BaseController : Controller  
    {  
        public override void OnActionExecuting(ActionExecutingContext filterContext)  
        {  
  
            String name = HttpContext.Session.GetString("name");  
            if (name == null)  
            {  
                //重定向到登录页面  
                HttpContext.Response.Redirect("Home/Login");  
                return;  
            }  
            base.OnActionExecuting(filterContext);  
        }  
    } 

这种方式的前提是,在基类Controller中将拦截动作进行模板化的设计,子类在实现时进行拦截代码的注入。即定义执行前,执行后等一些列虚方法,在子类中进行具体实现。这也是一种简单的拦截方式的实现。

基于属性的拦截器内置实现参见ASP.NET官方文档:

https://docs.microsoft.com/zh-cn/aspnet/core/mvc/controllers/filters

转载于:https://www.cnblogs.com/zhaiyf/p/8534099.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值