Development ASP.Net Tutorial

An HTTP Module is a .NET  class that executes with each and every page request. 
The HTTP Module doesn't allow you to request a page unless you include the proper query string with the request. 
File: App_Code\QueryStringAuthenticationModule.cs
using System;
using System.Web;
namespace MyNamespace
{
    public class QueryStringAuthenticationModule : IHttpModule
    {
        public void Init(HttpApplication app)
        {
            app.AuthorizeRequest += new EventHandler(AuthorizeRequest);
        }
        private void AuthorizeRequest(Object sender, EventArgs e)
        {
            HttpApplication app = (HttpApplication)sender;
            HttpContext context = app.Context;
            string path = context.Request.AppRelativeCurrentExecutionFilePath;
            if (String.Compare(path, "~/login.aspx", true) == 0)
                return;
            bool authenticated = false;
            if (context.Request.QueryString["password"] != null)
            {
                if (context.Request.QueryString["password"] == "secret")
                    authenticated = true;
            }
            if (!authenticated)
                context.Response.Redirect("~/Login.aspx");
        }
        public void Dispose() { }
    }
}
            
Register the HTTP Module in the web configuration file. 
File: Web.Config

    
      
                     type="MyNamespace.QueryStringAuthenticationModule"/>