一.MVC 默认的 动作
OnAuthorization
OnException
OnActionExecuting
OnActionExecuted
OnResultExecuting
OnResultExecuted
所有的过滤器都是通过上面事件来进行过滤的。
二.MVC 默认的 Filters
ASP.NET MVC: HttpPost action filter
ASP.NET MVC: RequireHttps action filter
ASP.NET MVC: NonAction action filter
ASP.NET MVC: HttpGet action filter
ASP.NET MVC: HttpDelete action filter
ASP.NET MVC: HttpPut action filter
ASP.NET MVC: ActionName action filter
ASP.NET MVC: HttpHead action filter
ASP.NET MVC: HttpOptions action filter
ASP.NET MVC: HttpPatch action filter
ASP.NET MVC: AcceptVerbs action filter
ASP.NET MVC: ChildActionOnly action filter
ASP.NET MVC: ValidateInput action filter
ASP.NET MVC: SessionState action filter
ASP.NET MVC: OutputCache action filter
ASP.NET MVC: Authorize action filter
ASP.NET MVC: AllowAnonymous action filter
ASP.NET MVC: ValidateAntiForgeryToken action filter
ASP.NET MVC: AsyncTimeout action filter
ASP.NET MVC: HandleError action filter
ASP.NET MVC: NoAsyncTimeout action filter
Filter分类
1.HttpPost,HttpGet,HttpDelete,HttpPut,HttpHead,HttpOptions,HttpPatch Http动作过滤器
2.RequireHttps 声明仅由https Requires可以访问
3.NonAction 声明Controller里面的public方法不作为route Action
4.ActionName 很好理解 映射Action实际名称,同事View也改变
5.ChildActionOnly 声明该Action不能直接通过Url 访问但可以作为某一个Action的子Action访问
6.ValidateInput 验证输入
7.SessionState Session状态过滤:
注意此处只能应用于Controller,不能作用于某一个Action
如
[SessionState(System.Web.SessionState.SessionStateBehavior.Disabled)] public class HomeController : Controller { public ActionResult About() { Session["key"] = "value"; return View(); } }
状态可选:
Default
Required
ReadOnly
Disabled
8.OutputCache 缓存过滤器
9.Authorize 身份验证过滤器
10.AllowAnonymous 身份验证过滤器,允许匿名用户访问
11.ValidateAntiForgeryToken 表单标识符验证,标记表单,只有配对的表单才会被接收
12.AsyncTimeout 异步访问过期设置
13.HandleError 错误过滤器
三、过滤器的执行顺序
筛选器按下列顺序运行:
授权筛选器
操作筛选器
响应筛选器
异常筛选器
例如,授权筛选器最先运行,异常筛选器最后运行。在每个筛选器类型中,Order 值将指定运行顺序。在每个筛选器类型和顺序中,Scope 模拟值将指定筛选器的顺序。此枚举将定义以下筛选器范围值(按它们运行的顺序):
First
Global
Controller
Action
Last
例如,其 Order 属性设置为 0 且筛选器范围设置为 First 的操作筛选器将在其 Order 属性设置为 0 且筛选器范围设置为 Action 的操作筛选器之前运行。
未定义具有相同类型、顺序和范围的筛选器的执行顺序。
OnActionExecuting(ActionExecutingContext) 、OnResultExecuting(ResultExecutingContext) 和 OnAuthorization(AuthorizationContext) 筛选器以正向顺序运行。
OnActionExecuted(ActionExecutedContext) 、OnResultExecuting(ResultExecutingContext) 和 OnException(ExceptionContext) 筛选器以反向顺序运行