ISAPI Filter开发入门

原创 2008年01月17日 15:39:00
Filter的主要功能就是在IIS向用户发送网页的时候,利用filter种的过滤功能,对Data的内容进行一定的修改,然后将修改后的内容进行发送给用户。
例如Filter01中就是对发送的网页进行检测,如果网页的内容里面包含有Hello字段,那么就对内容进行修改,将修改后的内容发送给客户端进行显示。

每个filter都是编译成一个DLL文件,然后将该DLL文件存放到D://目录下(也可以放到任意目录下,只是在IIS站点属性的ISAPI Filter中能找到相应的位置就好)。

为了测试结果,可以在IIS中新建一个站点,指定相应的端口号(如16000),然后在站点的内容中添加我们需要过滤的内容,然后打开网页,(http://localhost:16000/)查看不过滤的时候,正常显示的内容。

要查看过滤后的内容:在IIS相应站点的属性-》ISAPI Filters中添加一个Filter,该filter就是我们前面保存在D://目录下的相应DLL文件;在Documents标签下的Add,添加default.html,添加之后点击Apply。
然后打开网页(http://localhost:16000/default.html)可以查看是否能实现过滤的功能。显示出来的就是过滤后的内容(显示出来的内容是在FilterContext中的函数里我们构造的内容)。

注:此时在ISAPI Filter中可以查看到filter的Status为一个绿色的上升箭头。


在编写自己的Filter的时候,
首先新建一个C++工程:在Net环境中选择Visual C++下面的Win32,然后在右边选择“Win32 Console Application”,建立一个Empty Application。
完成后,在右侧的Solution Explorer中的Source Files中点击右键,
选择“Add”-》“new Items”,然后选择“Visual C++-》Code-》C++ File(.cpp)”,新建一个空白的文件,把程序写到里面。
一般DLL中的函数是无法被外界使用的,除非被Export以后的函数才可以被外界使用,导出的方法:
新建一个.def文件,同样点击:
在右侧的Solution Explorer中的Source Files中点击右键,
选择“Add”-》“new Items”,然后选择“Visual C++-》Code-》Module-Definition File(.def)”, 然后在里面添加如下内容:
“EXPORTS
 GetFilterVersion(需要导出的第一个函数的名字)
 HttpFilterProc(需要导出的第二个函数的名字)
依此类推……”

最后记得点击“该工程右键,选择属性一栏,一般需要将Character Set的值修改为:Use Multi-Byte Character Set“。
之后就可以编译生成DLL文件了。
 

ISAPI Filter编程重写URL

问题描述:要在一个Web站点上实现二级域名Url的重写。例如:http://abc.company.com 重写到 http://company.com/usersite.asp?sitename=a...

windows7以及windows2008下,iis7中isapi filter的加载简介

在微软的新一代操作系统中,iis的版本也进行了升级,由原来的iis6升级到了iis7。其中,win2008中是iis7.0,win7中是iis7.5,win2008R2版中是iis7.5。 在iis7...
  • sirdan
  • sirdan
  • 2009年12月15日 15:46
  • 3337

ISAPI Filter 限制 IIS 多线程访问

  • 2006年01月13日 09:51
  • 119KB
  • 下载

自定义ISAPI Filter中发现的一个与Keep-Alive相关的Bug

我曾经在IIS6和IIS7.5的Classic模式下实现了一个自定义ISAPI Filter,目的是实现我自己的Basic认证逻辑。这中间我遇到了ISAPI Filter中与Keep-Alive相关的...
  • pkudzy
  • pkudzy
  • 2013年06月28日 23:30
  • 736

ISAPI Filter 限制 IIS 多线程访问!

  • 2006年02月23日 09:05
  • 93KB
  • 下载

Ionic’s Isapi Rewrite Filter(IIRF)配置详解

Ionic’s Isapi Rewrite Filter(IIRF)配置详解 对于ISAPI Rewrite我想大家再熟悉不过了,它的伪静态URL重写功能已经被广大服务器所应用,但是ISAPI Re...
  • xxglyy
  • xxglyy
  • 2012年03月22日 22:35
  • 13929

使用ISAPI过滤器开发来增强IIS的功能

作为一个WWW服务器(WEB)软件,微软公司的Internet Infomation Server(IIS)简单易学,管理方便,得到了广泛的使用。您还可以通过ISAPI过滤器,进行自己定制的处理,来增...

使用VC++使用开发Web服务(ISAPI extension - mod_gsoap.dll)1

使用VC++使用开发Web服务(ISAPI extension - mod_gsoap.dll)1 在本例中使用gsoap中的ISAPI extension 模块(mod_gsoap.dll).本例中...

使用VC++使用开发Web服务(ISAPI extension - mod_gsoap.dll) 4- mod_gSoap 调试

在第7节 自动部署到WEB中已经讲过自动部署的方法,现在再说一次部署的方法 1. 自动部署到WEB 由于每次编译项目成功后我们都必须把模块Query.dll复制Web目录中,手工复制容易忘记并且比...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ISAPI Filter开发入门
举报原因:
原因补充:

(最多只允许输入30个字)