MonoRail中提供了Filter功能,可以在一个请求执行前或执行后执行一个特定的方法。
这样我们就这样实现统一进行用户权限判断等功能。
以下是一个简单的权限判断的演示:
给每一个controller加入属性Filter
[Filter(ExecuteEnum.BeforeAction,typeof(FilterBadHeader))]
publicclassFilterController:Controller
这里指定此判断是在活动执行前判断(BeforeAction),我们也可以指定在请求执行前(StartRequest)、活动执行后(AfterAction)、页面显示后(AfterRendering),以及这几种情况的合集
然后新建FilterBadHeader类
publicclassFilterBadHeader:IFilter


{

IFilterMembers#regionIFilterMembers

publicboolPerform(ExecuteEnumexec,IRailsEngineContextcontext,Controllercontroller)


{
if(context.Session["USER"]==null)


{
context.Response.Write("Denied!");

returnfalse;
}

returntrue;
}

#endregion
}
就是一个方法:Perform,当返回true时,继续执行,当返回false时,不再执行后续方法
这样给每一个需要进行权限判断的controller加入相同的Filter属性就可以了
这样我们就这样实现统一进行用户权限判断等功能。
以下是一个简单的权限判断的演示:
给每一个controller加入属性Filter


然后新建FilterBadHeader类

























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