asp.net 在AcquireRequestState事件中判断登陆验证。

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");
      }
    }
  }
}

 

posted @ 2014-11-07 02:00  hg一如既往  阅读(3154)  评论(0编辑  收藏  举报