Global中添加AcquireRequestState事件。
protected void Application_AcquireRequestState(object sender, EventArgs e) { Uri url = Request.Url; //得到当前请求的URL //访问Admin目录,需要进行登陆验证。 if (url.AbsolutePath.ToLower().StartsWith("/admin")) { //如果Login.aspx写在admin目录下,需要排除对Login.aspx验证。 if (HttpContext.Current.Session["Name"] == null) { HttpContext.Current.Response.Redirect("~/Login.aspx"); } } }
也可以使用IHttpModule接口,创建一个类,在配置文件中调用下。
//不要忘记:在配置文件中配置一下。
//<httpModules>
// <add name="CheckAdminModule" type="Web.Common.CheckAdminModule"/>
//</httpModules>
public class CheckAdminModule:IHttpModule { public void Init(HttpApplication context) { context.AcquireRequestState += new EventHandler(OnAcquireRequestState); } public void OnAcquireRequestState(object sender, EventArgs e) { HttpApplication application = sender as HttpApplication; Uri url = application.Request.Url; //得到当前请求的URL //访问Admin目录,需要进行登陆验证。 if (url.AbsolutePath.ToLower().StartsWith("/admin")) { //如果Login.aspx写在admin目录下,需要排除对Login.aspx验证。 if (application.Session["Name"] == null) //HttpContext.Current.Session["Name"] { application.Response.Redirect("~/Login.aspx"); } } } }