Name:
ISAPIFLT
Description:
Load and execute an ISAPI (Internet Server API) filter DLL. You can find more
informations about ISAPI filters in the
MSDN library. This handler will load the configured ISAPI filter DLL when
the server is started. If you want to load more than one ISAPI filter you must
use one ISAPIFLT handler for each filter DLL. During a HTTP request the handler
will dispatch the registered ISAPI filter notifications to the filter DLL.
Options:
Option | Default | Values | Short Description | Example(s) |
---|---|---|---|---|
Condition | - | A Pi3Expression | If condition is TRUE, filter is responsible for the request | Condition "®exp('*/admin/*',$z)" |
FilterDLLPath | + | A valid file path | The path to an ISAPI filter DLL | FilterDLLPath "C:\Pi3Web\Isapi\daf.dll" |
Terminators | - | Init, Headers, Hostmap, Mapping, CheckPath, CheckAuth, CheckAccess, CheckType, Handle, Log, Destroy | Phases, that are terminated by this handler | Terminators Headers | Mapping | Log |
SystemLogon | Yes | Yes|No | Indicates if the server should attempt a system logon | Terminators Headers | Mapping | Log |
Variable | - | <Pi3Expression> | A variable definition | Variable "GATEWAY_INTERFACE=CGI/1.1" |
ExtraHeaders | Yes | Yes|No | Indicates if extra headers are considered | ExtraHeaders Yes |
ExtraHeadersPrefix | - | <A string> | Used as prefix of each extra header | ExtraHeadersPrefix "HTTP_" |
ExtraHeadersIgnore | - | <Space delimited Strings> | List of unconsidered extra headers | ExtraHeadersIgnore "Content-Type Content-Length" |
Phase:
All Phases
Returns:
PIAPI_COMPLETED, PIAPI_CONTINUE, PIAPI_ERROR, or INT_REDIRECT according
to the status returned by the filter.
Notes:
Parameter | Evaluates to |
---|---|
%a | All extra headers, as required for header ALL_HTTP |
%l | Content-Length as DWORD, as required for ISAPI |
The following support functions are not supported:
SF_REQ_SET_NEXT_READ_SIZE
SF_REQ_GET_CONNID
This works only on Windows NT/2000/XP and requires permissions to "act as part of the operating system" for the user running the Pi3Web (except XP). Otherwise the HTTP statuscode 401 and appropriate response headers to force a basic authentication are set by the Pi3Web.
Example:
<Object> Name DAFFLT Class ISAPIFLTClass Condition "®exp('*/admin/*',$z)" FilterDLLPath "C:\Pi3Web\Isapi\daf.dll" Terminators Headers | Mapping </Object>