HSE_REQ_EXEC_URL

IIS 6.0

In IIS 6.0, this support function replaces HSE_REQ_EXECUTE_CHILD.

The HSE_REQ_EXEC_URL support function asynchronously processes a child request. HSE_REQ_EXEC_URL enables an ISAPI extension to rewrite a URL request in order to call another extension or redirect to a file.

The support function provides the functionality to replace most Read Raw Data filters. Read Raw Data filters are difficult to write in many configurations. HSE_REQ_EXEC_URL makes it easy to examine or modify the contents of a request entity body before the target URL processes it.

This ServerSupportFunction allows ISAPI extensions to call HSE_REQ_EXEC_URL with a URL whose characters are not in the code page of the IIS server.

This function passes a pointer to the HSE_EXEC_URL_INFO structure.


BOOL ServerSupportFunction(
   HCONN ConnID,
   DWORD dwServerSupportFunction,
   LPVOID lpvBuffer,
   LPDWORD lpdwSize,
   LPDWORD lpdwDataType
);

ConnID

Specifies the connection identifier of the client to which the response data is sent.

dwServerSupportFunction

The name of the Server Support function, which in this case must be set to HSE_REQ_EXEC_URL.

lpvBuffer

Pointer to an HSE_EXEC_URL_INFO structure.

lpdwSize

This parameter is not used.

lpdwDataType

This parameter is not used.


HSE_EXEC_URL_INFO *phseExecuteURLInfo = new HSE_EXEC_URL_INFO; 

ZeroMemory(phseExecuteURLInfo, sizeof(HSE_EXEC_URL_INFO)); 

/* Populate your HSE_EXEC_URL_INFO structure */ 
bResult = pECB->ServerSupportFunction ( 
  pECB->ConnID, 
  HSE_REQ_EXEC_URL, 
  phseExecuteURLInfo, 
  NULL, 
  NULL 
);

There are a few caveats of HSE_REQ_EXEC_URL, including the fact that you cannot rewrite the request to change the authentication type. You can only change the authentication token for non-anonymous URLs. Additionally, you cannot rewrite the URL to cross an Application Pool boundary.

There are two situations in which HSE_REQ_EXEC_URL cannot replace ReadRawData filters:

  • A ReadRawData filter that implements an encrypted or compressed stream (non-HTTP) between client and server, such as SSL or custom compression.

  • A ReadRawData filter that accepts data from a non-HTTP client.

Server: Requires or Windows Server 2003.

Product: IIS

Header: Declared in httpext.h.

Show: