asp.net用户检测的两种方式

第一种方式(继承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>
 
posted @ 2013-09-09 20:27  小武子技術博客  阅读(227)  评论(0编辑  收藏  举报