MonoRail学习笔记六:Filter功能使用

MonoRail中提供了Filter功能,可以在一个请求执行前或执行后执行一个特定的方法。
这样我们就这样实现统一进行用户权限判断等功能。

以下是一个简单的权限判断的演示:
给每一个controller加入属性Filter
[Filter(ExecuteEnum.BeforeAction, typeof (FilterBadHeader))]
public class FilterController:Controller
这里指定此判断是在活动执行前判断(BeforeAction),我们也可以指定在请求执行前( StartRequest)、活动执行后( AfterAction)、页面显示后( AfterRendering),以及这几种情况的合集

然后新建 FilterBadHeader
public class FilterBadHeader:IFilter
{
IFilterMembers#regionIFilterMembers

publicboolPerform(ExecuteEnumexec,IRailsEngineContextcontext,Controllercontroller)
{
if(context.Session["USER"]==null)
{
context.Response.Write(
"Denied!");

returnfalse;
}


returntrue;
}


#endregion

}
就是一个方法:Perform,当返回true时,继续执行,当返回false时,不再执行后续方法

这样给每一个需要进行权限判断的controller加入相同的Filter属性就可以了

你可能感兴趣的:(活动)