Asp.net mvc中过滤器

在开发过程中,我们想要对请求进行另外一些逻辑处理并且需要自定义逻辑的时候。MVC天然支持AOP切面这种特性

并且为我们提供了ActionFilterAttribute过滤的关键字。我们可以用这个自定义类做一些权限控制什么的。

ActionFilterAttribute类有以下的方法可以重写:

  • OnActionExecuting – 在controller action执行之前调用
  • OnActionExecuted – 在controller action执行之后调用
  • OnResultExecuting – 在controller action result执行之前调用
  • OnResultExecuted – 在controller action result执行之后调用
我们可以重写这几个方法,做一个简单的权限控制。
1.定义一个 actionFilterAttribute类

 public class actionFilterAttribute : ActionFilterAttribute
    {

public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
//这里我获取控制器Action方法名称并且判断
 //读取请求上下文中的Controller,Action,Id
           
            string url = HttpContext.Current.Request.Url.ToString().ToLower();
string[] urlArray = url.Split('/');
int urlindex = Array.IndexOf(urlArray, “Good”);
            if(urlindex == -1)

             {

HttpContext.Current.Response.Write("Action名称不是GOOD!");

                filterContext.Result = new EmptyResult();

return;

            }

             HttpContext.Current.Response.Write("Action是GOOD!");

return;

}
}

//控制器

 public class GoodBoyController : Controller
    {
        
        [ actionFilter ]
        public ActionResult Good()
        {
return View();
         }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值