ASP.NET MVC Filter的思考

2018-06-22 06:12:20来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

思考了一下AOP的具体实现,后来想到ASP.NET MVC过滤器其实就是AOP的一种,于是从Filter下手研究AOP.

暂时先考虑AuthorizationFilter,ActionFilter,ResultFilter三种,剩下的两种其实也差不多。AuthorizationFilter的实现最好是派生自AuthorizeAttribute类,而不是派生IAuthorizationFilter

看看AuthorizetionAttribute的实现:

看看ActionFilterAttribute的实现:


查了下 MSDN 关于 过滤器 的部分:
通常,动作过滤器是实现抽象FilterAttribute类的属性。某些操作过滤器(如AuthorizeAttribute和HandleErrorAttribute)可以直接实现FilterAttribute类。在操作方法运行之前,始终调用这些动作过滤器。
其他操作过滤器(如OutputCacheAttribute)实现抽象的ActionFilterAttribute类,该类可以在操作方法运行之前或之后使运行过滤器运行。
您可以使用操作过滤器属性来标记任何操作方法或控制器。如果属性标记控制器,则操作过滤器将应用于该控制器中的所有操作方法。

总结来看,MVC Filter(拦截器)就是实现派生了.net中的Attribute,并加入了MVC相关上下文类。那么Attribute又是如何来实现拦截的呢?应该去园子里找找答案...不喜勿喷...

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:SignalR来做实时Web聊天

下一篇:开源权限管理系统系列-源码介绍