HSE_REQ_EXEC_URL

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
);

Parameters

  • 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.

Example Code

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 
);

Remarks

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.

Requirements

Server: Requires or Windows Server 2003.

Product: IIS

Header: Declared in httpext.h.

See Also