`
njmnjx
  • 浏览: 234818 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

httpModules应用

阅读更多
<!--web.config-->
<?xml version="1.0"?>
<!-- 
    注意: 除了手动编辑此文件以外,您还可以使用 
    Web 管理工具来配置应用程序的设置。可以使用 Visual Studio 中的
     “网站”->“Asp.Net 配置”选项。
    设置和注释的完整列表在 
    machine.config.comments 中,该文件通常位于 
    \Windows\Microsoft.Net\Framework\v2.x\Config 中
-->
<configuration>
	<appSettings/>
	<connectionStrings/>
	<system.web>
		<!-- 
            设置 compilation debug="true" 可将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
		<compilation debug="true">
		</compilation>
		<!--
            通过 <authentication> 节可以配置 ASP.NET 用来 
            识别进入用户的
            安全身份验证模式。 
        -->
		<authentication mode="Windows"/>
		<!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
		
		<!--这部分为实际作用区域-->
		<httpModules>
			<add name="ModuleTest" type="TestHttpModule"/>
		</httpModules>
		<!--这部分为实际作用区域结束-->
	</system.web>
</configuration>


//添加类代码
using System;
using System.Collections.Generic;
using System.Web;
using System.Text.RegularExpressions;

/// <summary>
/// 此一类的使用要配合在Web.Config中配置如下内容(<system.web>节点内)
///<httpModules>
///		<add name="ModuleTest" type="TestHttpModule"/>
///</httpModules>
/// </summary>
public class TestHttpModule:IHttpModule 
{
    void IHttpModule.Dispose()
    {
        //throw new NotImplementedException();
    }

    void IHttpModule.Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(FunMethod);    //注册方法
    }

    private void FunMethod(object sender, EventArgs e)          //处理
    {

        HttpApplication application = (HttpApplication)sender;

        HttpContext context = application.Context;

        HttpRequest request = application.Request;

        HttpResponse response = application.Response;

        //response.Write("可以直接输出内容");

        string _url = request.Url.ToString();

        //匹配跳转
        if (Regex.IsMatch(_url, "^http://localhost:10000/httpModulesTest/\\d+", RegexOptions.IgnoreCase))
        {
            Regex reg = new Regex("^http://localhost:10000/httpModulesTest/(\\d+)", RegexOptions.IgnoreCase);
            Match m = reg.Match(_url);
            if (m.Success)
            {
                string mId = m.Groups[1].ToString();
                response.Redirect("http://www.baidu.com?id=" + mId);
            }
        }
    }
    
}




原码:
http://dl.iteye.com/topics/download/c5335581-d822-3210-9497-b7720f68bd0d
分享到:
评论
1 楼 donkey526485268 2013-10-18  
 

相关推荐

    httpModules方式伪静态 C#.Net实例代码

    在.NET开发中,HTTP Modules是IIS(Internet Information Services)中的一个重要组件,它允许开发者在HTTP请求生命周期的各个阶段插入自定义...理解并应用这个实例,可以帮助开发者提升其.NET应用的性能和SEO策略。

    协诚HTTP在线解压组件_sycode.httpmodules.webcompression.zip

    该组件名为`sycode.httpmodules.webcompression.zip`,暗示其基于.NET Framework的HTTP模块实现,通常这类组件会集成到ASP.NET应用程序中。 1. **HTTP压缩**: - HTTP压缩是一种在网络传输中减少数据量的技术,...

    ASP.Net防SQL注入的HttpMoudule

    开发者可以将这个模块添加到ASP.NET应用程序的配置文件(web.config)中,通过`&lt;system.web&gt;`标签下的`&lt;httpModules&gt;`部分注册该模块,如下所示: ```xml &lt;httpModules&gt; , DeSqlInjection"/&gt; &lt;/httpModules&gt; ...

    IIS和WEB应用程序的具体细节

    过去,处理原始HTTP请求需要编写ISAPI应用程序,但在.NET框架中,这一功能主要由HttpModules实现。 #### IIS的不同版本及处理流程 在Windows Server 2003(IIS v6.0)中,一个名为http.sys的驱动程序首先截获请求...

    ASP.NET-[上传下载]协诚HTTP在线解压组件.httpmodules.webcompression.zip

    在这个特定的资源包"ASP.NET-[上传下载]协诚HTTP在线解压组件.httpmodules.webcompression.zip"中,包含的是一个用于HTTP在线解压的组件,特别适用于优化网站性能,提升用户体验。该组件基于HTTP Modules技术,这在...

    一个通过HTTP modules模式在runtime 运行时创建服务端Web控件的源码例子

    在ASP.NET中,HTTP模块是通过实现`System.Web.IHttpModule`接口并注册到`web.config`文件中的`&lt;httpModules&gt;`部分来创建的。以下是一个简单的HTTP模块示例: ```csharp public class MyHttpModule : IHttpModule { ...

    IHttpModule应用

    本文将深入探讨IHttpModule的应用,以及如何利用它来实现网站访问记录。 一、IHttpModule概述 IHttpModule接口是ASP.NET提供的一种机制,用于扩展ASP.NET应用程序的功能。它包含两个关键方法:`Init...

    Visual.Basic.NET高级开发指南

    引言,从ASP迁移到ASP.NET,页框架,调试ASP.NET应用程序,状态控制和缓存,配置和部署,Web服务,安全,HttpHandlers和HttpModules,创建用户控件和服务器控件,使用XML以及使用ADO.NET创建数据库应用程序等。...

    ajx应用

    在这里,我们主要探讨的是"ajx应用",即如何利用AJAX实现网页的异步交互。 首先,我们需要了解AJAX的核心——XMLHttpRequest对象。这是JavaScript内置的一个对象,用于在后台与服务器进行通信。通过创建...

    2010年转眼已经过半,让我们一起回顾一下在这即将过去的时光中,微软.NET在企业应用中起到了许多至关重要的作用,发生了巨大的变迁。

    .NET2.0的ASP.NET 2.0带来了许多体系结构的升级,如改进的代码模型、扩展的编译过程以及增强了HTTPModules和HTTPHandlers,提升了开发效率和Web应用程序的性能。 然而,尽管.NET在中小企业应用中表现出色,尤其以其...

    ASP.NET体系结构

    HttpApplication是每个Web应用程序的核心,它维护请求的状态,并调用HttpModules和HttpHandlers。 9. Web程序的主要部分:HttpApplication HttpApplication是一个事件驱动的对象,它通过一系列的HttpModule和...

    从底层了解ASP.NET体系结构

    理解ASP.NET是如何将请求路由到应用程序代码中的,以及它是如何处理这些请求的,可以帮助开发者更好地优化性能、解决复杂的问题,并构建出更加高效的应用程序。 总之,ASP.NET是一个高度可扩展的Web应用程序平台,...

    关于虚拟目录继承根Web.Config的问题解决办法

    在ASP.NET环境中,Web.Config是应用的核心配置文件,用于存储各种配置设置,包括连接字符串、应用程序路径、HTTP处理器(HttpHandlers)、HTTP模块(HttpModules)等。当一个项目被部署为多个虚拟目录时,每个虚拟...

    web.config文件配置详解

    特定于单个页面的配置设置可以在节点下的和&lt;httpModules&gt;中进行设置。例如,元素用于添加或修改HTTP处理程序和模块,可以指定特定的请求类型由哪个类来处理。 通过使用节点,可以配置IIS服务器级别的设置,比如设置...

    Web.config

    《Web.config:构建高效Web应用程序的关键配置文件》 在ASP.NET框架中,Web.config文件扮演着至关重要的角色,它是每一个ASP.NET Web应用程序的基础配置文件,用于定义应用的配置信息,如连接字符串、身份验证模式...

    HttpModule和httpHandler学习例子

    1. **注册HttpModule**:在`Web.config`文件中,我们需要在`system.web/httpModules`节中添加模块的配置,指定它的类型全名。 2. **事件处理**:HttpModule通过实现`IHttpModule`接口,并覆盖`Init`和`Dispose`方法...

    IIS经典模式和集成模式的区别

    HTTP模块和HTTP处理器在集成模式中不再在`&lt;httpModules&gt;`节中定义,而是转移到`&lt;system.webServer&gt;`节的`&lt;modules&gt;`和`&lt;handlers&gt;`子节中。 **模式选择的考虑因素**: - 兼容性:经典模式适用于需要与IIS 6.0或更低...

    关于asp.net的英文文献

    ASP.NET是微软开发的一种强大的Web应用程序构建平台,它提供了极大的灵活性和能力,几乎可以用于构建任何类型的Web应用。尽管大多数人可能只对WebForms和WebServices等高层框架有所了解,它们位于ASP.NET层次结构的...

Global site tag (gtag.js) - Google Analytics