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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM