Microsoft Internet Security and Acceleration Server 2004 SDK |
The ISA Server Web proxy supports the Web filter extensibility model, so that third-party developers can examine and change the HTTP request-and-response flow by using Web filters. ISAPI extensions are not supported.
The Web proxy manages communication with clients, and therefore does not rely on Internet Information Services (IIS). The Web proxy provides the functions necessary for the implementation of Web filters. Web filters developed for IIS will generally work with the Web proxy because the APIs are similar.
There are several important differences between ISAPI support in IIS and in ISA Server.
Web filters for IIS are typically installed on a Web server. Web filters for ISA Server are installed on an ISA Server computer, between the Web server and the Web client, and act as conduits for requests to all external and internal sites. There is no local site or content, and no direct access to Web server files.
Support for general ISAPI functions, server support functions, and notification-specific functions in ISA Server differs slightly from IIS. The following table compares support for ISAPI functions in IIS and in ISA Server.
Function or notification | Task | ISA Server support | IIS support |
---|---|---|---|
GetServerVariable | Yes. Not all variables are supported. | ISA Server 2004 provides some variables that are not provided by IIS. | |
AddResponseHeaders | Yes. Headers are added by AddResponseHeaders only for responses generated by ISA Server, where SEND_RESPONSE is triggered. Use SEND_RAW_DATA to add headers to all responses. | 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 earlier than 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 | Not relevant to the implementation of ISAPI in ISA Server. Provided for compatibility with IIS. If you use it in an ISA Server Web filter, you should not assume that the number of bytes read during the subsequent read operation will not exceed the value set in the ul1 parameter. | 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. |
Administration, setup, and registration are significantly different in ISA Server. For specific information and procedures, see Web Filter Setup.
IIS stores configuration information in the Microsoft Active Directory, whereas the ISA Server Web proxy uses the ISA Server 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 Server because of new notifications, setup requirements, and storage functionality.