Asp.net MVC2学习笔记7-拦截器接口(IActionFilter,IExceptionFilter,IResultFilter,IAuthorizationFilter)
来源:互联网 发布:网络安全法考试题 编辑:程序博客网 时间:2024/06/11 03:16
今天学习几个Asp.net MVC2里的拦截器接口(也叫过滤器接口):IActionFilter,IExceptionFilter,IResultFilter,并实现自己的拦截器。。。。
1、IActionFilter(Action拦截器接口)
Action拦截器分别在“执行Action之前”拦截和“执行Action之后”拦截,2个方法如下:
看摘要就可以区分出哪个是执行之前拦截和执行之后拦截了,我们只需要实现这个接口就可以在执行Action之前做些处理和执行Action之后做些“善后”处理了。。。。
参数:filterContext 包含了执行整个Action的内容,我们可以取到我们想要的内容,如Action名称啦,一些参数等等。。。
示例代码如:
2、 IResultFilter(Result拦截器接口)
IResultFilter 和 IActionFilter 一样提供2个方法,执行前和执行后,分别是在 返回Result之前执行和返回Result之后执行。接口中的2个方法如下:
参数:filterContext包含拦截到的Result等信息。。。
示例代码如:
这2个接口的区别很明显:一个拦截 Action、一个拦截Result(这不是废话嘛,哈哈),又因为Result是Action返回的,
所以 他们的执行顺序是:
OnActionExecuting-->Action中的代码-->OnActionExecuted-->OnResultExecuting-->OnResultExecuted
由于拦截器的特性,大伙们现在喜欢用他们来做日志记录,判断权限等功能。。。。。
当然做日志记录还经常要记录一些异常信息了。。
3、IExceptionFilter(异常拦截器接口)
异常拦截器接口只有一个方法,就是当异常发生时需要执行的内容:
参数:filterContext包含异常等信息。。。
示例代码如:
代码中显示了出错的Controller 、action 和异常信息。。。。此处你可以自定义重定向到错误页面去。。
上面说到大伙们可能会用 IActionFilter做权限判断功能,其实我们可以用专业的 IAuthorizationFilter来做权限判断。。。
4、IAuthorizationFilter(授权拦截器接口)
该拦截器专门用来判断权限,判断时候有权限执行后面的Action,此接口在任何拦截器之前执行。。。。。
提供一个方法:
示例代码如:
完整示例代码:
1、MyFilter.cs
2、HomeController.cs
- Asp.net MVC2学习笔记7-拦截器接口(IActionFilter,IExceptionFilter,IResultFilter,IAuthorizationFilter)
- Asp.net MVC2学习笔记7-拦截器接口(IActionFilter,IExceptionFilter,IResultFilter,IAuthorizationFilter)
- 拦截器接口(也叫过滤器接口):IActionFilter,IExceptionFilter,IResultFilter
- Action拦截器接口(IActionFilter,IExceptionFilter)
- MVC 自定义拦截器 FilterAttribute、IActionFilter、IExceptionFilter
- Asp.net MVC2学习笔记1-Route
- Asp.net MVC2学习笔记2-Controller
- Asp.net MVC2学习笔记3-View
- Asp.net MVC2学习笔记-简单实例
- ASP.NET MVC2框架验证学习笔记
- ASP.NET MVC2 学习笔记1
- ASP.NET MVC2 学习笔记2
- Asp.net MVC2学习笔记1-Route
- Asp.net MVC2学习笔记2-Controller
- Asp.net MVC2学习笔记3-View
- asp.net MVC2 学习
- Asp.Net MVC2 实用入门系列:第六篇:拦截器
- ASP.NET MVC2 学习笔记之URL路由
- ADO数据库编程入门
- Magento All kinds of Theme
- gridview 与 detailsview 添加删除确认
- 心情不好
- 服务器压力测试ab与webbench
- Asp.net MVC2学习笔记7-拦截器接口(IActionFilter,IExceptionFilter,IResultFilter,IAuthorizationFilter)
- gridview 高级分页
- IT技术学习方法
- DBunit、TestContext实践 【转】
- 数组最大的和是多少? 对应的N和M是多少?
- Perl 引用(即指针) 学习笔记
- 關於在PB中連接PostgreSQL
- MFC控件变色
- F#入门-第二章 F#基础-第二十二节 模块与命名空间