建立一个BaseController 所有的控制器继承自BaseController,登陆页面除外。如果登陆页面也继承BaseController,会引起死循环。
重写OnActionExecuting,
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (GetCurrentUser() == null)// 判断是否登录
{
//JavaScriptResult result = new JavaScriptResult();
//result.Script = "<script>alert(\"抱歉,您还未登录,请先登录\");top.location.href='/Home/Index';<script>";
//filterContext.Result = result;
//"/Home/Index"
///上面注释掉的方法会引起直接输出js文件,打开下载页面
RedirectResult result = new RedirectResult("/Home/NeedLogin"); /这个控制器是为了实现跳转
filterContext.Result = result;
}
base.OnActionExecuting(filterContext);
}
这个是NeedLogin控制器的视图,在视图中做跳转,跳出整个框架