public class BasePage : System.Web.UI.Page { public BasePage() { } protected override void OnInit(EventArgs O) { if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals("")) { Response.Redirect("~/Error.aspx"); } } } 也可使用IHttpHanlder实现session判断
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using DBUtility; using Pmg.Model;namespace Pmg.Web { //每个用到Session判断的地方都继承ExtendAdmin public class ExtendAdmin: System.Web.UI.Page { public string AdminId { get { if(Utils.SessionExist("ConfigId")==false) { return null; } else { return Session["ConfigId"].ToString(); } } set { Session["ConfigId"] = value; } } //OnInit激发Page_Load protected override void OnInit(EventArgs e) { AdminId = "Topserve"; if (AdminId== null) { Response.Redirect("/admin"); } base.OnInit(e); } public static void Exit() { HttpContext.Current.Session.Remove("ConfigId"); } } }
basePageSessionExpire.cs下写的内容 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;namespace WMS.Web { public class basePageSessionExpire : System.Web.UI.Page { protected override void OnInit(EventArgs e) { base.OnInit(e); Load += PageBaseLoad; } private void PageBaseLoad(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Session["usrnam"] == null) { Context.Response.Redirect("WebForm1.aspx"); } } }
也可以在web.config中直接配置错误页,出错就直接跳转
然后你新建的窗体都继承这个类。
{
public BasePage()
{
}
protected override void OnInit(EventArgs O)
{
if (base.Session["UserId"] == null || base.Session["UserId"].ToString().Equals(""))
{
Response.Redirect("~/Error.aspx");
}
}
}
也可使用IHttpHanlder实现session判断
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using DBUtility;
using Pmg.Model;namespace Pmg.Web
{
//每个用到Session判断的地方都继承ExtendAdmin
public class ExtendAdmin: System.Web.UI.Page
{
public string AdminId
{
get {
if(Utils.SessionExist("ConfigId")==false)
{
return null;
}
else
{
return Session["ConfigId"].ToString();
}
}
set { Session["ConfigId"] = value; }
}
//OnInit激发Page_Load
protected override void OnInit(EventArgs e)
{
AdminId = "Topserve";
if (AdminId== null)
{
Response.Redirect("/admin");
}
base.OnInit(e);
}
public static void Exit()
{
HttpContext.Current.Session.Remove("ConfigId");
}
}
}
然后,各个页面继承sessionPage
public class PageBase : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Load += PageBaseLoad;
} private void PageBaseLoad(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if(Session["User"]==null)
{
response.Redirect("Login.aspx")
}
}
}
}
在web.config里设置session的生命周期,如果生命周期一到,会自动跳转到session_end事件里.
然后在里面执行跳转事件不就OK了嘛.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;namespace WMS.Web
{
public class basePageSessionExpire : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Load += PageBaseLoad;
} private void PageBaseLoad(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (Session["usrnam"] == null)
{
Context.Response.Redirect("WebForm1.aspx");
}
}
}
}}我在登陆后进入的default.aspx页面继承这个类 可是session还是不能跳转到登陆页