aspx:
先创建基类
public partial class Test : System.Web.UI.Page
{
//这里实现load或者 OnPreInit 区别不大
protected override void OnPreInit(EventArgs e)
{
//这里进行判断
if (Session["admin"] == null)
{
this.Response.Redirect("login.aspx");
return;
}
base.OnPreInit(e);
}
}
继承基类(需要判断登录的页面,统一继承Test)
public partial class _default : Test
{
private void Page_Load(object sender, EventArgs e)
{
}
}
MVC:
方法一:
public class BaseWebController : BaseController
{
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
if ((CurrentUser == null || CurrentUser.id == 0))
{
filterContext.HttpContext.Response.Redirect("/Login/Login");
}
base.OnActionExecuting(filterContext);
}
}
页面继承
public class MyProjectController : BaseWebController
{
MyProjectDAL mp = new MyProjectDAL();
//
// GET: /MyProject/
public ActionResult Index(int parentId=0)
{
var q = mp.GetProject(CurrentUser, parentId);
return View();
}
}
方法二:
1 /// <summary> 2 /// 参数过滤器 3 /// </summary> 4 public class ParamFilter : ActionFilterAttribute 5 { 6 /// <summary> 7 /// 执行Action之前操作 8 /// </summary> 9 /// <param name="filterContext"></param> 10 public override void OnActionExecuting(ActionExecutingContext filterContext) 11 {
//跳转方式
//filterContext.Result=new RedirectResult("/User/Login"); 12 ///处理Action之前操作内容根据我们提供的规则来定义这部分内容 13 base.OnActionExecuting(filterContext); 14 } 15 16 /// <summary> 17 /// 执行Action之后操作18 /// </summary> 19 /// <param name="filterContext"></param> 20 public override void OnActionExecuted(ActionExecutedContext filterContext) 21 { 22 base.OnActionExecuted(filterContext); 23 } 24 }
[ParamFilter]
public ActionResult Index(string a=null)
{
return Content("试试看1"+(a??""));
}