IHttpHandler

IHttpHandler

System.Web (system.web.dll)interface

This interface is required to process HTTP requests. It's implemented by the System.Web.UI.Page and HttpApplication classes, but you can use IHttpHandler to create a custom HttpHandler for a lower-level programming model. You can still access the HttpContext object (and, through its properties, built in objects like HttpRequest and HttpResponse), but you cannot use the higher-level Page abstraction. Common uses of handlers include filters and CGI-like applications, especially those returning binary data.

When using the IHttpHandler interface, you must implement the ProcessRequest( ) method and IsReusable property. The ProcessRequest( ) method receives an HttpContext object, which gives you access to ASP.NET's built-in objects. Use the IsReusable property to declare whether a single instance of your handler can serve multiple requests.

You will also need to modify <httphandlers> section of the web.config file to make your custom handler a target for HTTP requests. You can map requests based on the requested page, file type, or HTTP method (GET, PUT, or POST). If you want to create a handler that can process all requests, you should create a custom HttpModule using the IHttpModule interface.

public interface IHttpHandler {
// Public Instance Properties
   public bool IsReusable{get; }
// Public Instance Methods
   public void ProcessRequest(HttpContext context);
}

Implemented By

HttpApplication, IHttpAsyncHandler, System.Web.Services.Discovery.DiscoveryRequestHandler, System.Web.UI.Page

Returned By

HttpContext.Handler, IHttpHandlerFactory.GetHandler( ), System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler( ), System.Web.UI.PageParser.GetCompiledPageInstance( )

Passed To

HttpContext.Handler, IHttpHandlerFactory.ReleaseHandler( ), System.Web.Services.Protocols.WebServiceHandlerFactory.ReleaseHandler( )



    Part I: Introduction to ASP.NET
    Part III: Namespace Reference
    Chapter 40. The System.Web.UI.MobileControls Namespace
    Chapter 42. The System.Web.UI.WebControls Namespace