第一种方式(继承System.Web.UI.Page类,重写OnInit方法):
public class CheckSession : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
if (Session["User"] == null)
{
Response.Redirect("/Login.aspx");
}
base.OnInit(e);
}
}
第二种方式(继承IHttpModule第九个管道)
/Application
public void Init(HttpApplication context)
{
context.AcquireRequestState+=new EventHandler(OnRequest);
}
public void OnRequest(object source, EventArgs e)
{
HttpApplication application = source as HttpApplication;//得到Application
HttpContext context = application.Context;//得到请求上下文.
Uri url = context.Request.Url;//得到当前请求的URL
//请求Admin目录下的文件时,需要进行身份验证,只有管理员才能访问.
if (url.AbsolutePath.ToLower().StartsWith("/admin"))
{
//adminlogin.aspx和logout.aspx不需要身份验证
if (url.AbsolutePath.ToLower().EndsWith("adminlogin.aspx"))
{
return;
}
if (url.AbsolutePath.ToLower().EndsWith("loginout.aspx"))
{
return;
}
if (HttpContext.Current.Session["Name"] == null)
{
HttpContext.Current.Response.Redirect("adminlogin.aspx");
}
}
}
配置文件
<httpModules>
<add name="CheckAdminModule" type="Web.Common.CheckAdminModule"/>
</httpModules>