The low level
Request and Response API to service incoming Http requests are Http Handlers in
Asp.Net. All handlers implement the IHttpHandler interface, which is located in
the System.Web namespace. Handlers are somewhat analogous to Internet Server
Application Programming Interface (ISAPI) extensions.
I will explain how to extend the functionality of web server by using Http
handlers and How to protect files using Http handlers.
Methods in Http Handler
The following are
the methods in Http Handlers.
Method Name
|
Description
|
ProcessRequest
|
Used to call Http Requests.
|
IsReusable
|
To check the reusability of same
instance handler with a new request of same type.
|
Configuring HTTP Handlers
The
configuration section handler is responsible for mapping
incoming URLs to the IHttpHandler or IHttpHandlerFactory class. It can be
declared at the computer, site, or application level. Subdirectories inherit these
settings.
Administrators
use the tag directive to configure the
section. directives are interpreted and processed in a top-down
sequential order. Use the following syntax for the section
handler:
Creating HTTP Handlers
To create an HTTP
handler, you must implement the IHttpHandler interface. The IHttpHandler
interface has one method and one property with the following signatures:
void
ProcessRequest(HttpContext);
bool IsReusable {get;}
bool IsReusable {get;}
Customized Http Handler
By customizing
http handlers, new functionalities can be added to Web Server. Files with new
extensions like .text for a text file can be handled by Web Server by using
http handlers. The future of customization can lead to hosting .jsp pages in
IIS by finding adequate ISAPI extensions. The following steps are involved to
create customized http handler:
- Create a C# class library as
"Examplehandler"
- Name class as
"Handlerclass.cs"
using System.Web;
using System.Web.SessionState;
namespace ExampleHandler
{
///
/// Summary description for Examplehandler.
///
public class Handlerclass : IHttpHandler
{
public Handlerclass()
{
//
// TODO: Add constructor logic here
//
}
#region Implementation of IHttpHandler
public void ProcessRequest(System.Web.HttpContext context)
{
HttpResponse objResponse = context.Response ;
HttpSessionState objSession = context.Session ;
objResponse.Write("
Hello World from Handler") ;
objResponse.Write("") ;
}
public bool IsReusable
{
get
{
return true;
}
}
#endregion
}
}
Compile it and place it in the bin directory of TestApp project.
Step 2