MonoRail学习笔记六:Filter功能使用
2009-04-27 15:26
483 查看
MonoRail中提供了Filter功能,可以在一个请求执行前或执行后执行一个特定的方法。
这样我们就这样实现统一进行用户权限判断等功能。
以下是一个简单的权限判断的演示:
给每一个controller加入属性Filter
[Filter(ExecuteEnum.BeforeAction, typeof(FilterBadHeader))]
public class FilterController : Controller
这里指定此判断是在活动执行前判断(BeforeAction),我们也可以指定在请求执行前(StartRequest)、活动执行后(AfterAction)、页面显示后(AfterRendering),以及这几种情况的合集
然后新建FilterBadHeader类
public class FilterBadHeader : IFilter
{
IFilter Members#region IFilter Members
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller)
{
if (context.Session["USER"] == null)
{
context.Response.Write("Denied!");
return false;
}
return true;
}
#endregion
}
就是一个方法:Perform,当返回true时,继续执行,当返回false时,不再执行后续方法
这样给每一个需要进行权限判断的controller加入相同的Filter属性就可以了
这样我们就这样实现统一进行用户权限判断等功能。
以下是一个简单的权限判断的演示:
给每一个controller加入属性Filter
[Filter(ExecuteEnum.BeforeAction, typeof(FilterBadHeader))]
public class FilterController : Controller
这里指定此判断是在活动执行前判断(BeforeAction),我们也可以指定在请求执行前(StartRequest)、活动执行后(AfterAction)、页面显示后(AfterRendering),以及这几种情况的合集
然后新建FilterBadHeader类
public class FilterBadHeader : IFilter
{
IFilter Members#region IFilter Members
public bool Perform(ExecuteEnum exec, IRailsEngineContext context, Controller controller)
{
if (context.Session["USER"] == null)
{
context.Response.Write("Denied!");
return false;
}
return true;
}
#endregion
}
就是一个方法:Perform,当返回true时,继续执行,当返回false时,不再执行后续方法
这样给每一个需要进行权限判断的controller加入相同的Filter属性就可以了
相关文章推荐
- MonoRail学习笔记六:Filter功能使用
- MonoRail学习笔记六:Filter功能使用
- MonoRail学习笔记三:使用方便功能强大的routing功能
- MonoRail学习笔记十四:分页功能的使用
- MonoRail学习笔记三:使用方便功能强大的routing功能
- MonoRail学习笔记十四:分页功能的使用
- MonoRail学习笔记三:使用方便功能强大的routing功能
- Adnroid学习笔记:Intent与<intent-filter>的使用
- MonoRail学习笔记九:Rescue的使用
- MonoRail学习笔记十七:TransformFilter的使用
- angularjs学习笔记之三(变量及过滤器Filter的使用)
- MonoRail学习笔记十二:layout布局的使用
- MySQL学习笔记之十六 使用MySQL内建复制功能
- MonoRail学习笔记九:Rescue的使用
- 【OpenCV学习笔记】【函数学习】十四(cvSeq的用法说明(功能很多,按照需求使用))
- VTK学习笔记:使用VTK交互功能
- MonoRail学习笔记二十:资源文件的使用和多语言支持
- 《疯狂Android讲义》学习笔记 -- 使用Intent和IntentFilter进行通信
- OpenLayers学习笔记6——使用jQuery UI实现查询并标注(功能实现篇)
- 使用u-boot的tftp下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记09