ActionFilter可以对每一个传过来的action请求进行过滤,非常有用,但是如果在这里判断过多,那么网站的性能和速度会不会变慢,这个问题值得思考,现在先放在这里。
public class AuthencationAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { //跳转 登录页面 if (filterContext.HttpContext.Session["ID"] == null) { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary { { "Controller", "Account" }, { "Action", "Login" } }); } else { //权限控制页面 var userid = filterContext.HttpContext.Session["ID"].ToString(); BLLAuthen ba = new BLLAuthen(); if (!ba.getuserbyid(int.Parse(userid))) { filterContext.Result = new RedirectToRouteResult( new RouteValueDictionary { { "Controller", "Account" }, { "Action", "Authen" } }); } } base.OnActionExecuting(filterContext); } }