dotaeye

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一.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) 筛选器以反向顺序运行

 

 

 

posted on 2013-02-22 11:23  dotaeye  阅读(709)  评论(0编辑  收藏  举报