CHttpServerContext::ServerSupportFunction

BOOL ServerSupportFunction (DWORD dwHSERRequest, LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType );

Valor devuelto

Distinto de cero si es correcto, en caso contrario 0.

Parámetros

dwHSERRequest

Un valor de extensión de servidor HTTP. Vea la sección de comentarios para obtener una lista de los valores admitidos.

lpvBuffer

Cuando se utiliza con HSE_REQ_SEND_RESPONSE_HEADER, apunta a una cadena nula terminada Estado opcional (por ejemplo, "401 acceso denegado"). Si este buffer es null, una respuesta predeterminada de "200 OK" enviará esta función. Cuando se utiliza con HSE_REQ_DONE_WITH_SESSION, apunta a un DWORD que indica el código de estado de la solicitud.

lpdwSize

Cuando se utiliza con HSE_REQ_SEND_RESPONSE_HEADER, señala el tamaño de la memoria intermedia lpdwDataType.

lpdwDataType

Cuando se utiliza con HSE_REQ_SEND_RESPONSE_HEADER, esto es una cadena terminada en null señala a encabezados opcionales o de datos anexados y se enviarán con el encabezado. Si el valor es nulo, el encabezado se terminará por un par de "\r\n".

&Notanbsp;  Funciones de propósito general deben tener un valor de dwHSERequest mayor de HSE_REQ_END_RESERVED. Valores hasta HSE_REQ_END_RESERVED están reservados para ServerSupportFunctions obligatorio y no deben utilizarse.

Observaciones

Llame a esta función miembro para proporcionar la ISA con algunas funciones de propósito general, así como las funciones que son específicas para la implementación del servidor HTTP.

El valor de extensión de servidor HTTP representado por dwHSERRequest puede ser uno de los siguientes:

HSE_REQ_SEND_URL_REDIRECT_RESP

Envía un 302 ( URL Redirec t) mensajes al cliente. Ningún otro procesamiento es necesario después de la llamada. Esta operación es similar a la especificación "URI: lt;URL > "en un encabezado de secuencia de comandos CGI. La variable lpvBuffer debe apuntar a una cadena URL terminada en nulo. Variable lpdwSize debe tener el tamaño de lpvBuffer. Se ignora la variable lpdwDataType.

HSE_REQ_SEND_URL

Envía los datos especificados por el URL al cliente como si el cliente había solicitado dicha URL. El Null terminated URL apuntado por lpvBuffer debe estar en el servidor y no se debe especificar la información de protocolo (es decir, debe comenzar con un '/'). Ningún otro procesamiento es necesario después de esta llamada. Variable lpdwSize apunta a una DWORD mantiene el tamaño de lpvBuffer. Se ignora la variable lpdwDataType.

HSE_REQ_SEND_RESPONSE_HEADER

Incluyendo la condición de versión del servidor, tiempo de mensaje y versión MIME el encabezado de respuesta de servidor envía un HTTP completo. La extensión de servidor o ISA debe anexar otros encabezados HTTP al final como el Content-Type, Content-Length y así sucesivamente, seguido por extra "\r\n".

HSE_REQ_DONE_WITH_SESSION

Si la extensión de servidor o ISA quiere aferrarse a la sesión porque ha extendido a los requisitos de procesamiento, debe indicar al servidor cuando termine el período de sesiones para que el servidor pueda cerrarlo y libre de las estructuras relacionadas. Variables lpvBuffer, lpdwSizey lpdwDataType se omiten.

HSE_REQ_END_RESERVED

Funciones superiores a este valor son servidor específico y pueden no estar disponibles en todos los servidores web que admiten ISAPI.

HSE_REQ_MAP_URL_TO_PATH

El parámetro lpvBuffer es un puntero a un búfer que contiene la ruta de acceso lógico a la entrada y la ruta de acceso física al salir. El parámetro lpdwSize es un puntero a la DWORD que contiene el tamaño del búfer pasado en lpvBuffer en la entrada y coloca el número de bytes en el búfer de salida. Se omite el parámetro lpdwDataType ). Una extensión específica de Microsoft.

HSE_REQ_GET_SSPI_INFO

El lpvBuffer se rellena con el identificador de contexto y * lpdwDataType se rellena con el identificador de credencial. Un identificador de contexto especifica un tipo de puntero o un identificador de tipo. Un identificador de credencial especifica la autenticación y autorización.

HSE_REQ_TRANSMIT_FILE

Consulte TransmitFile para un método más fácil de transmitir un archivo a un solicitante.

&Notanbsp;  El servidor no garantiza que los búferes grandes suficientemente antes de rellenar los controles y el lpdwSize no se actualiza para reflejar la cantidad de datos que se copian en el búfer de lpvBuffer . Dado que estos son fijos estructuras de tamaño, se supone los punteros pasados son punteros a la estructura y deben ser al menos tan grandes como las estructuras de solicitud.

Visión General de CHttpServerContext |nbsp; Miembros de clase | Diagrama de jerarquía

Véase también

CHttpFilterContext::ServerSupportFunction, CHttpServerContext::TransmitFile

Index