排名
6
文章
199
粉丝
4
评论
3
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术

过滤器的作用范围
全局过滤器
在FilterConfig中注册的就是全局过滤器filters.Add(new LoginFilter());
所有的控制器和action都会被限制
布局过滤器
1:控制器作用在controller,放到哪里就作用到哪里[LoginFilter]
public class HomeController : Controller
{
}
2:控制器作用在action(最小的限制级别)
使用特性进行注入
限制你要限制的部分[LoginFilter]
public ActionResult Hot()
{
return View();
}
特性
一个普通类继承Attribute就可以变成特性,特性可以作用在方法上面,实现一些功能,
比如:[httppost]限制一个action只能post访问
注意:过滤器里边的特性应该使用FilterAttribute,FilterAttributeb比普通的Attribute功能更强大一点,具有过滤器的特殊功能。它是一个拥有过滤器功能的特性
过滤器的作用限制分类
- IActionFilter
限制控制器执行中与执行之后执行 - IResultFilter
限制action返回方法执行中与执行之后执行,这个用得比较少 - IAuthorizationFilter
权限过滤器 - IExceptionFilter
出现异常的时候执行,可以做统一的异常处理
过滤器的优先级
当多个过滤器同时存在的时候,优先级的问题
IActionFilter,IResultFilter那个优先级更高一点
IActionFilter本身的执行时间节点都要比IResultFilter快一点
过滤器如果不是同类型的本来就存在一个时间节点的优先级
同级优先级:
1:默认情况下同级的谁写到前面就先执行谁
2:可以通过设置order来改变优先级,数值越小优先级越高
全局设置:
filters.Add(new LoginFilter3(), 2);
filters.Add(new LoginFilter(), 1);
特性设置:
[LoginFilter3(Order = 6)]
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价