过滤器(Filter)把附加逻辑注入到MVC框架的请求处理。实现了交叉关注。
交叉关注:用于整个应用程序,又不适合放在某个局部位置的功能。
过滤器是.NET的注解属性(Attribute),它们对请求处理管道添加了额外的步骤。
注解属性是派生于System.Attribute的特殊的.NET类。
可以被附加到类、方法、属性、字段等代码元素上。其目的是把附加信息嵌入到已编译的代码中,以便在运行时读回这些信息。
过滤器的基本类型:
|
过滤器类型 |
接口 |
默认实现 |
描述 |
|
Authorization |
IAuthorizationFilter |
AuthorizationAttribute |
最先运行 |
|
Action |
IActionFilter |
ActionFilterAttribute |
在动作方法前后运行 |
|
Result |
IResultFilter |
ActionResultAttribute |
在动作结果被执行前后 |
|
Exception |
IExceptionFilter |
HandlerErrorAttribute |
仅在过滤器、动作发生异常时 |
授权过滤器:IAuthorizationFilter
namespace System.Web.Mvc{ // 摘要:定义授权筛选器所需的方法。 public interface IAuthorizationFilter{ // 摘要:在需要授权时调用。 // 参数:filterContext:筛选器上下文。 void OnAuthorization(AuthorizationContext filterContext); } }