|
ASP.NET Mvc 简单的 action全局拦截器(过滤器)
1.创建一个类 继承:ActionFilterAttribute
publicclassActionFilter: ActionFilterAttribute { #region是否登录 publicboolIsLogin { get; set; } #endregion
#region执行action前执行这个方法 publicoverridevoidOnActionExecuting(ActionExecutingContextfilterContext) { varvarget= filterContext. HttpContext.Session["UserInfo"]; if(IsLogin==false) { if(varget==null) { filterContext.Result = newRedirectResult("/Login/Index"); } return; } } #endregion }
在文件夹 App_Start下的 FilterConfig.cs中加上:
publicclassFilterConfig { publicstaticvoidRegisterGlobalFilters(GlobalFilterCollectionfilters) { filters.Add(newHandleErrorAttribute()); filters.Add(newActionFilter()); } }
这样一个简单的全局拦截器就完成了
在访问其他页面时一旦Session["UserInfo"]为空跳转到"/Login/Index"登录页
在登录页无需判断否则会一直重复跳转 在Index加上:
[ActionFilter(IsLogin=true)]
[ActionFilter(IsLogin=true)]
public ActionResult Index()
{
return View();
}
[ActionFilter(IsLogin = true)]
public ActionResult CheckUser()
{ CheckUser 方法 是判断 账号和密码是否正确的方法也需要不做判断

|