目的:在调用操作之前或者之后执行特定的逻辑代码
系统定义:
1.日志记录
2.防图像盗链 
3.爬虫
4.本地化,用于设定区域设置
5.动态操作,用于将操作注入到控制器当中
用来过滤HTTP请求
高级编程Attribute的一种特例
1.AuthorizeAttribute通过身份验证和授权(可选)限制访问
2.HandleErrorAttribute制定如何处理由操作方法引起的异常
3.OutputCacheAttribute提供输出缓存
4.RequireHttpsAttribute强制请求通过HTTPS重新发送
过滤器的顺序就是按照下面的顺序来执行的


也可以在app_start中加入这个代码来让所有的action实现这个方法
  1. public static void RegisterGlobalFilters(GlobalFilterCollection filters)
  2. {
  3. filters.Add(new HandleErrorAttribute());
  4. filters.Add(new logFilterAttribute()); //这一行是新加入的
  5. }

在FilterConfig中添加新的覆写过滤规则


覆写OnActionExecuting方法,然后在Controller的action中只要添加 [logFilter] 属性就可以直接使用过滤器方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class logFilterAttribute : ActionFilterAttribute
{
    // 在方法执行之前拦截
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //跳转 登录页面
        if (filterContext.HttpContext.Session["UserName"] == null)
        {
            filterContext.Result = new RedirectToRouteResult(
                                   new RouteValueDictionary
                           {
                               { "Controller", "Account" },
                                  { "Action", "Login" }
                                            });
        }
        base.OnActionExecuting(filterContext);
       
    }
 
}
1
2
3
4
5
[Authorize]
        public ActionResult TestAuthorize()
        {
            return View();
        }








ASP.NET-属性与过滤器的更多相关文章

  1. ASP.NET Web API 过滤器创建、执行过程(二)

    ASP.NET Web API 过滤器创建.执行过程(二) 前言 前面一篇中讲解了过滤器执行之前的创建,通过实现IFilterProvider注册到当前的HttpConfiguration里的服务容器 ...

  2. ASP.NET Web API 过滤器创建、执行过程(一)

    ASP.NET Web API 过滤器创建.执行过程(一) 前言 在上一篇中我们讲到控制器的执行过程系列,这个系列要搁置一段时间了,因为在控制器执行的过程中包含的信息都是要单独的用一个系列来描述的,就 ...

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

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

  4. 解说asp.net core MVC 过滤器的执行顺序

    asp.net core MVC 过滤器会在请求管道的各个阶段触发.同一阶段又可以注册多个范围的过滤器,例如Global范围,controller范围等.以ActionFilter为例,我们来看看过滤 ...

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

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

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

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

  7. ASP.NET Core 使用过滤器移除重复代码

    USING ACTIONFILTERS TO REMOVE DUPLICATED CODE ASP.NET Core 的过滤器可以让我们在请求管道的特定状态之前或之后运行一些代码.因此如果我们的 ac ...

  8. ASP.NET MVC动作过滤器

    ASP.NET MVC提供了4种不同的动作过滤器(Aciton Filter). 1.Authorization Filter 在执行任何Filter或Action之前被执行,用于身份验证 2.Act ...

  9. Asp.net MVC 之过滤器

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

  10. ASP.NET Core MVC 过滤器介绍

    过滤器的作用是在 Action 方法执行前或执行后做一些加工处理.使用过滤器可以避免Action方法的重复代码,例如,您可以使用异常过滤器合并异常处理的代码. 过滤器如何工作? 过滤器在 MVC Ac ...

随机推荐

  1. 【百度语音识别】JavaAPI方式语音识别示例

    https://ai.baidu.com/forum/topic/show/496730

  2. [HTML 5] aria-live

    "aria-live" is a method to tell the information to the screen reader once value changed. a ...

  3. webview同步cookies

    目前很多android app都内置了可以显示web页面的界面,会发现这个界面一般都是由一个叫做WebView的组件渲染出来的,学习该组件可以为你的app开发提升扩展性. 先说下WebView的一些优 ...

  4. 杂项-项目管理:WBS(工作分解结构)

    ylbtech-杂项-项目管理:WBS(工作分解结构) WBS:工作分解结构(Work Breakdown Structure) 创建WBS:创建WBS是把项目 交付成果和项目工作分解成较小的,更易于 ...

  5. 6 ZigZig Conversion[M]Z字形变换

    题目 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows li ...

  6. 10. Regular Expression Matching[H]正则表达式匹配

    题目 Given an input string(s) and a pattern(p), implement regular expression matching with support for ...

  7. MVC的一些常用特性,持续更新中。。。

    1. @MvcHtmlString.Create("<option value='1'>火星</option>")   //渲染Html

  8. AutoFac与ASP.NET MVC结合使用

    MVC下的配置 通过NuGet安装AutoFac插件:Install-Package Autofac.Mvc5 在Global中调用: var builder= new ContainerBuilde ...

  9. 构建工具系列一--Travis-cli

    本文地址: http://www.cnblogs.com/blackmanba/articles/continuous-integration-tool-travis-cli.html或者http:/ ...

  10. Java NIO(二)缓冲区

    概念 缓冲区:一个用于特定基本数据类型的容器,由java.nio包定义的所有缓冲区都是Buffer抽象类的子类.其作用于与NIO的通道进行交互,数据从通道读入缓冲区,数据从缓冲区写入通道 Buffer ...