ASP.NET MVC提供了4种不同的动作过滤器(Aciton Filter)。

1.Authorization Filter

在执行任何Filter或Action之前被执行,用于身份验证

2.Action Filter

在执行Action之前或之后被执行,用于执行的Action需要生成记录或者缓存数据时

3.Result Filter

在执行ActionResult的前后被执行。在View被显示到浏览器之前可以执行一些逻辑运算,或修改ViewResult的输出结果

4.Exception Filter

在Action执行之前或之后或者ActionResult执行之前或之后被执行。在执行中发生异常时,可以使用此Filter指向其他页面来显示错误信息

下面是不同动作过滤器的执行顺序:

OnAuthorization

OnActionExecuting

执行动作(Action)

OnActionExecuted

OnResultExecuting

执行视图(View)

OnResultExecuted

OnException

动作过滤器一律使用属性(Attribute)的方式应用在Action之上。eg:

  1. [Authorize(Roles="admin")]
  2. public ActionResult Edit(int id)
  3. {
  4. return View();
  5. }

这四种动作过滤器都是.net属性(Attribute)类,只要继承Attribute类并实现与之对应的接口就可以扩展功能。

注:动作过滤器属性也可以用在Controller上,若用在Controller上,则将此属性用在此Controller中的所有Action之上。

Authorization过滤器属性

  • Authorize属性
用户或角色符合要求才能被使用。否则就会跳转到登录页面
其中在web.config文件的system.web类的设定中有一个Authentication设定,其中<forms>部分有一个loginUrl属性可以设定当权限不足时应该跳转的地址,eg:

  1. <authentication mode="Forms">
  2. <forms loginUrl="~/Account/LogOn" timeout="2880" />
  3. </authentication>
  • ChildActionOnly属性
 
  • RequiredHttps属性
        应用RequiredHttps属性,让Action仅能显示在https安全登录的状态下。如果用户使用http连接,该Action就会自动转向同一个Action的https网址。

  1. [RequireHttps]
  2. public ViewResult Index()
  3. {
  4. ......
  5. return View();
  6. }
  • ValidateInput属性

ASP.NET MVC动作过滤器的更多相关文章

  1. 使用ASP.NET MVC操作过滤器记录日志(转)

    使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_Filte ...

  2. ASP.NET MVC : Action过滤器(Filtering)

    http://www.cnblogs.com/QLeelulu/archive/2008/03/21/1117092.html ASP.NET MVC : Action过滤器(Filtering) 相 ...

  3. [翻译] 使用ASP.NET MVC操作过滤器记录日志

    [翻译] 使用ASP.NET MVC操作过滤器记录日志 原文地址:http://www.singingeels.com/Articles/Logging_with_ASPNET_MVC_Action_ ...

  4. ASP.NET MVC 系统过滤器、自定义过滤器

    一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...

  5. Asp.net MVC 之过滤器

    整理一下MVC中的几种过滤器,以及每种过滤器是干什么用的 四种过滤器 1.AuthorizationFilter(授权过滤器) 2.ActionFilter(方法过滤器) 3.ResultFilter ...

  6. Asp.net MVC 权限过滤器实现方法的最佳实践

    在项目开发中,为了安全.方便地判断用户是否有访问当前资源(Action)的权限,我们一般通过全局过滤器来实现. Asp.net MVC 页面中常见的权限判断使用过滤器主要在以下几种情况(根据权限判断的 ...

  7. Asp.Net MVC在过滤器中使用模型绑定

    废话不多话,直接上代码 1.创建MVC项目,新建一个过滤器类以及使用到的实体类: public class DemoFiltersAttribute : AuthorizeAttribute { pu ...

  8. asp.net mvc 利用过滤器进行网站Meta设置

    过去几年都是用asp.net webform进行开发东西,最近听说过时了,同时webform会产生ViewState(虽然我已经不用ruanat=server的控件好久了 :)),对企业应用无所谓,但 ...

  9. ASP.NET core MVC动作过滤器执行顺序

    using Microsoft.AspNetCore.Mvc.Filters; using System; using System.Threading.Tasks; namespace dotnet ...

随机推荐

  1. ESENT分布式数据存储

    关于ESENT,我能想到最恰当的比喻是,它是Microsoft世界的BerkeleyDB,鲜为人知,很少有.NET开发人员使用它,rhino-queues项目使用就是它,但它的性能和可靠性已经经受住了 ...

  2. MongoDB 2.6.2 发布

    NoSQL数据库MongoDB推出了全新一代产品MongoDB 2.6.2,该版本全面强化核心服务器,提供全新的自动化工具与重要的企业功能,宣称是MongoDB问世5年来最大的一次版本发布,主要改善开 ...

  3. ASP.NET MVC 和 Ruby 相结合的Web框架Oak

    在http://www.asp.net/mvc/open-source 上有个项目Oak: Frictionless development for ASP.NET MVC single page w ...

  4. OstrichNet 简易统计信息收集工具

    Ostrich 是twitter用于监控服务器性能的一个scala库,项目地址https://github.com/twitter/ostrich, 主要功能是收集.展示统计信息, 同时也提供了关闭服 ...

  5. HTML5- Canvas入门(七)

    这是本系列的最后一篇入门文章,主要是对剩余的未说明的canvas方法来逐个介绍. 首先,如果你是一名擅长矢量设计的设计师,对Illustrator或者Fireworks很熟悉的话,那你肯定知道它们有一 ...

  6. 细嗅Promise

    读完这篇文章,预计会消耗你 40 分钟的时间. Ajax 出现的时候,刮来了一阵异步之风,现在 Nodejs 火爆,又一阵异步狂风刮了过来.需求是越来越苛刻,用户对性能的要求也是越来越高,随之而来的是 ...

  7. java中文乱码解决之道(八)-----解决URL中文乱码问题

    我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不 ...

  8. SQL Server 2000向SQL Server 2008 R2推送数据

    [文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的 ...

  9. 老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)

    在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现在也支持Xamarin Forms了, ...

  10. Html5 实现灯笼绘制

    最近在学习Html5,就用JavaScript在Canvas试着绘制了一个灯笼,并作了简要的说明. 具体绘制思路在页面上有说明,不再赘述,代码如下: <script type="tex ...