<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FDevelopment%2FHTTP_Modules</id>
		<title>ASP.NET Tutorial/Development/HTTP Modules - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FDevelopment%2FHTTP_Modules"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/HTTP_Modules&amp;action=history"/>
		<updated>2026-04-29T21:45:51Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/HTTP_Modules&amp;diff=2555&amp;oldid=prev</id>
		<title> в 15:30, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/HTTP_Modules&amp;diff=2555&amp;oldid=prev"/>
				<updated>2010-05-26T15:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:30, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/HTTP_Modules&amp;diff=2556&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Development/HTTP_Modules&amp;diff=2556&amp;oldid=prev"/>
				<updated>2010-05-26T11:56:15Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Adding the HttpHandler configuration information to web.config==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web;&lt;br /&gt;
public class Handler : IHttpHandler {&lt;br /&gt;
    &lt;br /&gt;
    public void ProcessRequest (HttpContext context) {&lt;br /&gt;
        context.Response.ContentType = &amp;quot;image/jpeg&amp;quot;;&lt;br /&gt;
        context.Response.WriteFile(&amp;quot;Sunset.jpg&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public bool IsReusable {&lt;br /&gt;
        get {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Creating Custom HTTP Modules==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
An HTTP Module is a .NET class that executes with each and every page request. &lt;br /&gt;
The HTTP Module doesn&amp;quot;t allow you to request a page unless you include the proper query string with the request. &lt;br /&gt;
File: App_Code\QueryStringAuthenticationModule.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web;&lt;br /&gt;
namespace MyNamespace&lt;br /&gt;
{&lt;br /&gt;
    public class QueryStringAuthenticationModule : IHttpModule&lt;br /&gt;
    {&lt;br /&gt;
        public void Init(HttpApplication app)&lt;br /&gt;
        {&lt;br /&gt;
            app.AuthorizeRequest += new EventHandler(AuthorizeRequest);&lt;br /&gt;
        }&lt;br /&gt;
        private void AuthorizeRequest(Object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            HttpApplication app = (HttpApplication)sender;&lt;br /&gt;
            HttpContext context = app.Context;&lt;br /&gt;
            string path = context.Request.AppRelativeCurrentExecutionFilePath;&lt;br /&gt;
            if (String.rupare(path, &amp;quot;~/login.aspx&amp;quot;, true) == 0)&lt;br /&gt;
                return;&lt;br /&gt;
            bool authenticated = false;&lt;br /&gt;
            if (context.Request.QueryString[&amp;quot;password&amp;quot;] != null)&lt;br /&gt;
            {&lt;br /&gt;
                if (context.Request.QueryString[&amp;quot;password&amp;quot;] == &amp;quot;secret&amp;quot;)&lt;br /&gt;
                    authenticated = true;&lt;br /&gt;
            }&lt;br /&gt;
            if (!authenticated)&lt;br /&gt;
                context.Response.Redirect(&amp;quot;~/Login.aspx&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void Dispose() { }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
            &lt;br /&gt;
Register the HTTP Module in the web configuration file. &lt;br /&gt;
File: Web.Config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
    &amp;lt;system.web&amp;gt;&lt;br /&gt;
      &amp;lt;httpModules&amp;gt;&lt;br /&gt;
        &amp;lt;add name=&amp;quot;QueryStringAuthenticationModule&amp;quot;&lt;br /&gt;
             type=&amp;quot;MyNamespace.QueryStringAuthenticationModule&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;/httpModules&amp;gt;&lt;br /&gt;
    &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== HttpContext (C#)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Web;&lt;br /&gt;
namespace Demo&lt;br /&gt;
{&lt;br /&gt;
    public class AppendMessage : IHttpModule&lt;br /&gt;
    {&lt;br /&gt;
        private HttpContext _current = null;&lt;br /&gt;
        #region IHttpModule Members&lt;br /&gt;
        public void Dispose()&lt;br /&gt;
        {&lt;br /&gt;
            throw new Exception(&amp;quot;The method or operation is not implemented.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        public void Init(System.Web.HttpApplication context)&lt;br /&gt;
        {&lt;br /&gt;
            _current = context.Context;&lt;br /&gt;
            context.PreSendRequestContent +=&lt;br /&gt;
                new EventHandler(context_PreSendRequestContent);&lt;br /&gt;
        }&lt;br /&gt;
        void context_PreSendRequestContent(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            string message = &amp;quot;&amp;lt;!-- This page has been post processed at &amp;quot; +&lt;br /&gt;
                             System.DateTime.Now.ToString() +&lt;br /&gt;
                             &amp;quot; by a custom HttpModule.--&amp;gt;&amp;quot;;&lt;br /&gt;
            _current.Response.Output.Write(message);&lt;br /&gt;
        }&lt;br /&gt;
        #endregion&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
File: Web.config&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
    &amp;lt;system.web&amp;gt;&lt;br /&gt;
      &amp;lt;httpModules&amp;gt;&lt;br /&gt;
        &amp;lt;add name=&amp;quot;AppendMessage&amp;quot; type=&amp;quot;AppendMessage, App_code&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/httpModules&amp;gt;&lt;br /&gt;
    &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== HttpContext (VB)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Imports Microsoft.VisualBasic&lt;br /&gt;
Imports System.Web&lt;br /&gt;
Public Class AppendMessage&lt;br /&gt;
    Implements IHttpModule&lt;br /&gt;
    Dim WithEvents _application As HttpApplication = Nothing&lt;br /&gt;
    Public Overridable Sub Init(ByVal context As HttpApplication) _&lt;br /&gt;
            Implements IHttpModule.Init&lt;br /&gt;
        _application = context&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Overridable Sub Dispose() Implements IHttpModule.Dispose&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub context_PreSendRequestContent(ByVal sender As Object, _&lt;br /&gt;
            ByVal e As EventArgs) Handles _application.PreSendRequestContent&lt;br /&gt;
        Dim message As String = &amp;quot;&amp;lt;!-- This page has been post processed at &amp;quot; &amp;amp; _&lt;br /&gt;
                                System.DateTime.Now.ToString() &amp;amp; _&lt;br /&gt;
                                &amp;quot; by a custom HttpModule.--&amp;gt;&amp;quot;&lt;br /&gt;
        _application.Context.Response.Output.Write(message)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
File: Web.config&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
    &amp;lt;system.web&amp;gt;&lt;br /&gt;
      &amp;lt;httpModules&amp;gt;&lt;br /&gt;
        &amp;lt;add name=&amp;quot;AppendMessage&amp;quot; type=&amp;quot;AppendMessage, App_code&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;/httpModules&amp;gt;&lt;br /&gt;
    &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== HttpModule Tester==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;Default.aspx.cs&amp;quot; Inherits=&amp;quot;HttpModuleTester&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;HttpModuleTester&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Default.aspx.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Configuration;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Web;&lt;br /&gt;
using System.Web.Security;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.Web.UI.WebControls.WebParts;&lt;br /&gt;
using System.Web.UI.HtmlControls;&lt;br /&gt;
public partial class HttpModuleTester : System.Web.UI.Page&lt;br /&gt;
{&lt;br /&gt;
    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        HttpContext myHttpContext = HttpContext.Current;&lt;br /&gt;
        HttpApplication myHttpApplication = myHttpContext.ApplicationInstance;&lt;br /&gt;
        HttpModuleCollection myHttpModuleCollection = myHttpApplication.Modules;&lt;br /&gt;
        for (int index=0; index &amp;lt; myHttpModuleCollection.Count; index++)&lt;br /&gt;
        {&lt;br /&gt;
            IHttpModule module = myHttpModuleCollection.Get(index);&lt;br /&gt;
            Response.Write(&amp;quot;Module = &amp;quot; + module.ToString() + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        string httpModuleName = myHttpModuleCollection.GetKey(1);&lt;br /&gt;
        Response.Write(&amp;quot;The name of the HttpModule object at index 1&amp;quot; + &amp;quot; is &amp;quot; + &amp;quot;&amp;quot;&amp;quot; + httpModuleName + &amp;quot;&amp;quot;.&amp;quot; + &amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
        string[] allModules = myHttpModuleCollection.AllKeys;&lt;br /&gt;
        Response.Write(&amp;quot;&amp;lt;b&amp;gt;The HttpModule objects contained in the HttpModuleCollection are:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
        for (int i = 0; i &amp;lt; allModules.Length; i++)&lt;br /&gt;
            Response.Write(&amp;quot;Module &amp;quot; + i + &amp;quot;  : &amp;quot; + allModules[i] + &amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Outputting an image from an HttpHandler (C#)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;HttpHandler Serving an Image&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;ImageHandler.ashx&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Handler.ashx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;%@ WebHandler Language=&amp;quot;C#&amp;quot; Class=&amp;quot;Handler&amp;quot; %&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web;&lt;br /&gt;
public class Handler : IHttpHandler {&lt;br /&gt;
    &lt;br /&gt;
    public void ProcessRequest (HttpContext context) {&lt;br /&gt;
        context.Response.ContentType = &amp;quot;image/jpeg&amp;quot;&lt;br /&gt;
        context.Response.WriteFile(&amp;quot;Sunset.jpg&amp;quot;)&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public bool IsReusable {&lt;br /&gt;
        get {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Outputting an image from an HttpHandler (VB)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;HttpHandler Serving an Image&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;img src=&amp;quot;ImageHandler.ashx&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Handler.ashx&lt;br /&gt;
&amp;lt;%@ WebHandler Language=&amp;quot;VB&amp;quot; Class=&amp;quot;Handler&amp;quot; %&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Web&lt;br /&gt;
Public Class Handler : Implements IHttpHandler&lt;br /&gt;
    &lt;br /&gt;
    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest&lt;br /&gt;
        context.Response.ContentType = &amp;quot;image/jpeg&amp;quot;&lt;br /&gt;
        context.Response.WriteFile(&amp;quot;Sunset.jpg&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
 &lt;br /&gt;
    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable&lt;br /&gt;
        Get&lt;br /&gt;
            Return False&lt;br /&gt;
        End Get&lt;br /&gt;
    End Property&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== The IHttpHandler page template (C#)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
File: Handler.ashx&lt;br /&gt;
&amp;lt;%@ WebHandler Language=&amp;quot;C#&amp;quot; Class=&amp;quot;Handler&amp;quot; %&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Web;&lt;br /&gt;
public class Handler : IHttpHandler {&lt;br /&gt;
    &lt;br /&gt;
    public void ProcessRequest (HttpContext context) {&lt;br /&gt;
        context.Response.ContentType = &amp;quot;text/plain&amp;quot;;&lt;br /&gt;
        context.Response.Write(&amp;quot;Hello World&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public bool IsReusable {&lt;br /&gt;
        get {&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== The IHttpHandler page template (VB)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
File: Handler.ashx&lt;br /&gt;
&amp;lt;%@ WebHandler Language=&amp;quot;VB&amp;quot; Class=&amp;quot;Handler&amp;quot; %&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Web&lt;br /&gt;
Public Class Handler : Implements IHttpHandler&lt;br /&gt;
    &lt;br /&gt;
    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest&lt;br /&gt;
        context.Response.ContentType = &amp;quot;text/plain&amp;quot;&lt;br /&gt;
        context.Response.Write(&amp;quot;Hello World&amp;quot;)&lt;br /&gt;
    End Sub&lt;br /&gt;
 &lt;br /&gt;
    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable&lt;br /&gt;
        Get&lt;br /&gt;
            Return False&lt;br /&gt;
        End Get&lt;br /&gt;
    End Property&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== URL rewriting HttpModule (C#)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System.Web;&lt;br /&gt;
public class SimpleRewriter : System.Web.IHttpModule&lt;br /&gt;
{&lt;br /&gt;
    HttpApplication _application = null;&lt;br /&gt;
    public void Init(HttpApplication context)&lt;br /&gt;
    {&lt;br /&gt;
        context.BeginRequest += new System.EventHandler(context_BeginRequest);&lt;br /&gt;
        _application = context;&lt;br /&gt;
    }&lt;br /&gt;
    public void Dispose()&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
    private void context_BeginRequest(object sender, System.EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        string requesturl =&lt;br /&gt;
            _application.Context.Request.Path.Substring(0,&lt;br /&gt;
                _application.Context.Request.Path.LastIndexOf(&amp;quot;//&amp;quot;)&lt;br /&gt;
            );&lt;br /&gt;
        string[] parameters = requesturl.Split(new char[] { &amp;quot;/&amp;quot; });&lt;br /&gt;
        if (parameters.Length &amp;gt; 1)&lt;br /&gt;
        {&lt;br /&gt;
            string firstname = parameters[1];&lt;br /&gt;
            string lastname = parameters[2];&lt;br /&gt;
            _application.Context.RewritePath(&amp;quot;~/unfriendly.aspx?firstname=&amp;quot; +&lt;br /&gt;
                firstname + &amp;quot;&amp;amp;lastname=&amp;quot; + lastname);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== URL rewriting HttpModule (VB)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Imports Microsoft.VisualBasic&lt;br /&gt;
Imports System.Web&lt;br /&gt;
Public Class SimpleRewriter&lt;br /&gt;
    Implements System.Web.IHttpModule&lt;br /&gt;
    Dim WithEvents _application As HttpApplication = Nothing&lt;br /&gt;
    Public Overridable Sub Init(ByVal context As HttpApplication) _&lt;br /&gt;
            Implements IHttpModule.Init&lt;br /&gt;
        _application = context&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Overridable Sub Dispose() Implements IHttpModule.Dispose&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub context_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) _&lt;br /&gt;
            Handles _application.BeginRequest&lt;br /&gt;
        Dim requesturl As String = _&lt;br /&gt;
            _application.Context.Request.Path.Substring(0, _&lt;br /&gt;
            _application.Context.Request.Path.LastIndexOf(&amp;quot;/&amp;quot;c))&lt;br /&gt;
        Dim parameters() As String = _&lt;br /&gt;
            requesturl.Split(New [Char]() {&amp;quot;/&amp;quot;c}, _&lt;br /&gt;
                StringSplitOptions.RemoveEmptyEntries)&lt;br /&gt;
        If (parameters.Length &amp;gt; 1) Then&lt;br /&gt;
            Dim firstname As String = parameters(1)&lt;br /&gt;
            Dim lastname As String = parameters(2)&lt;br /&gt;
            _application.Context.RewritePath(&amp;quot;~/unfriendly.aspx?firstname=&amp;quot; &amp;amp; _&lt;br /&gt;
                firstname &amp;amp; &amp;quot;&amp;amp;lastname=&amp;quot; &amp;amp; lastname)&lt;br /&gt;
        End If&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>