像 Internet 服务器 API (ISAPI) 扩展一样,ISAPI 筛选器是在 Web 服务器接收到 HTTP 请求时进行响应的程序。但不同于 ISAPI 扩展,ISAPI 筛选器总在服务器进程中运行。ISAPI 筛选器不同于应用程序,因为它们是由 Web 服务器事件驱动,而不是由客户端请求驱动的。可以将 ISAPI 筛选器与特定 Web 服务器事件关联;每次发生关联事件时都将通知筛选器。例如,当读或写事件发生时将通知筛选器并由其对将返回给客户端的原始数据进行加密。
可以为应用程序服务器上所有的站点安装筛选器(全局筛选器),也可以为单个网站安装筛选器(站点筛选器)。如果同时安装全局和站点筛选器,两个筛选器列表将针对站点进行合并。
当几个筛选器注册给同一事件时,将按顺序对其进行调用。优先级较高的筛选器在优先级较低的筛选器之前运行。如果几个筛选器的优先级相同,则在主属性中设置的全局筛选器将在站点级别设置的筛选器之前运行。在同一继承级别具有相同优先级的筛选器将根据其加载顺序运行。可以通过调整 Web 服务器或网站的属性来改变筛选器的加载顺序。
要点 您必须是本地计算机上 Administrators 组的成员或者必须被委派了相应的权限,才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"。
将筛选器添加到 Web 服务器或网站
注意 如果将筛选器添加到网站,您将无法看到从 Web 服务器的主属性继承的全局筛选器。而只能看到为网站安装的筛选器,尽管这两组筛选器都在运行。
注意 只能更改具有相同优先级的筛选器的加载顺序。
注意 如果 HTTP 请求触发了一个筛选器已注册的事件,则筛选器将接收包含在请求中的数据,无论该请求是针对文件、CGI 应用程序或是 ISAPI 扩展。