Microsoft Internet Security and Acceleration Server 2000

ISAPI: Comparing IIS and ISA

The ISA Web proxy service supports the Web (ISAPI) filter extensibility model, allowing third-party developers to examine and change the HTTP request-and-response flow by using Web filters. ISAPI extensions are not supported.

The ISA Web proxy service manages communication with clients, and therefore does not rely on IIS. The ISA Web proxy service provides the functions necessary for the implementation of Web filters. Web filters developed for IIS will work with the ISA Web proxy service because the APIs are unchanged.

There are several important differences between ISAPI support in IIS and in ISA.

Architecture

Web (ISAPI) filters for IIS are typically installed on a Web server. Web filters for ISA are installed on an ISA server, between the Web server and the Web client, and therefore act as conduits for requests to all external and internal sites. There is therefore no local site or content, and no direct access to Web server files.

Functions

The support for general ISAPI functions, server support functions, and notification-specific functions in ISA differs slightly from IIS. The following table compares support for ISAPI functions in IIS and in ISA Server.

Function Task ISA Server Support IIS Support
GetServerVariable Yes. Not all variables are supported Yes.
AddResponseHeaders Yes. Yes.
WriteClient Yes. Yes.
AllocMem Yes. Yes.
ServerSupportFunction SF_REQ_ADD_HEADERS_ON_DENIAL Yes. Yes.
SF_REQ_DISABLE_NOTIFICATIONS Yes. Yes.
SF_REQ_GET_CONNID Returns 0 Supported by versions until IIS 4.0; otherwise, returns 0
SF_REQ_GET_PROPERTY

only for SF_PROPERTY_INSTANCE_NUM_ID

Returns 0 Yes.
SF_REQ_NORMALIZE_URL Yes. Yes.
SF_REQ_SEND_RESPONSE_HEADER Yes. Yes.
SF_REQ_SET_NEXT_READ_SIZE Yes. Yes.
SF_REQ_SET_PROXY_INFO No. Yes.
SF_NOTIFY_SEND_RESPONSE Not used when the Web proxy sends a response. Used when a filter generates a response using the SF_REQ_SEND_RESPONSE_HEADERS server support function. Yes.
SF_STATUS_REQ_FINISHED_KEEP_CONN   Treated the same as SF_STATUS_REQ_FINISHED. After this notification is received, the connection is closed. Treated the same as SF_STATUS_REQ_FINISHED, except that the server should keep the TCP session open if the option was negotiated.

Administration

Administration, setup, and registration are significantly different in ISA. For specific information and procedures see Web Filter Setup and Registration.

IIS stores configuration information in the Microsoft Active Directory™, whereas the ISA Web proxy service uses the ISA administration COM objects to store and retrieve filter configuration information.

Note  Web filters developed for Microsoft Proxy Server 2.0 are not binary-compatible with ISA because of new notifications, setup requirements, and storage functionality.