CHttpServerContext::ServerSupportFunction

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

Valore restituito

Diverso da zero in caso di successo, altrimenti 0.

Parametri

dwHSERRequest

Un valore di estensione del Server HTTP. Vedere la sezione Osservazioni per un elenco dei valori supportati.

lpvBuffer

Se utilizzato con HSE_REQ_SEND_RESPONSE_HEADER, punta a una stringa null e terminato lo status opzionale (ad esempio, "401 accesso negato"). Se questo buffer è null, una risposta predefinita di "200 OK" verrà inviato da questa funzione. Se utilizzato con HSE_REQ_DONE_WITH_SESSION, punta a un DWORD che indica il codice di stato della richiesta.

lpdwSize

Quando utilizzato con HSE_REQ_SEND_RESPONSE_HEADER, punta alla dimensione del tampone lpdwDataType.

lpdwDataType

Quando utilizzata con HSE_REQ_SEND_RESPONSE_HEADER, questo è una stringa null-terminated che punta a intestazioni facoltative o allegata e inviato con l'intestazione dei dati. Se questo è NULL, l'intestazione sarà risolto da una coppia di "\r\n".

&Notanbsp;  Le funzioni di uso generale devono avere un valore di dwHSERequest più grande HSE_REQ_END_RESERVED. Valori fino a HSE_REQ_END_RESERVED sono riservati per ServerSupportFunctions obbligatoria e non devono essere utilizzati.

Osservazioni

Chiamare questa funzione membro per fornire l'ISA con alcune funzioni di uso generale, nonché le funzioni specifiche per l'implementazione di server HTTP.

Il valore di estensione del HTTP Server rappresentato da dwHSERRequest può essere uno dei seguenti:

HSE_REQ_SEND_URL_REDIRECT_RESP

Invia un 302 ( URL Redirec t) messaggio al client. Nessuna ulteriore elaborazione è necessario dopo la chiamata. Questa operazione è simile a specificare "URI: lt;URL > "in un'intestazione di script CGI. La variabile lpvBuffer dovrebbe puntare a una stringa URL terminata null. Variabile lpdwSize dovrebbe avere le dimensioni di lpvBuffer. Variabile lpdwDataType viene ignorato.

HSE_REQ_SEND_URL

Invia i dati specificati dall'URL al client come se il cliente aveva chiesto tale URL. Il valore Null di terminazione URL a cui puntata lpvBuffer deve essere sul server e non deve specificare le informazioni di protocollo (cioè deve iniziare con una '/'). Nessuna ulteriore elaborazione è necessaria dopo questa chiamata. Variabile lpdwSize punti ad un DWORD tenendo le dimensioni del lpvBuffer. Variabile lpdwDataType viene ignorato.

HSE_REQ_SEND_RESPONSE_HEADER

Invia un completo HTTP server intestazione risposta inclusi lo status, la versione server, ora del messaggio e MIME versione. L'estensione ISA o server dovrebbe aggiungere altre intestazioni HTTP alla fine come il Content-Type, Content-Length e così via, seguita da un extra "\r\n".

HSE_REQ_DONE_WITH_SESSION

Se l'estensione ISA o server vuole tenere sulla sessione, perché essa ha esteso i requisiti di elaborazione, deve dire il server quando la sessione è finita così il server può chiuderla e senza strutture correlate. Variabili lpvBuffer, lpdwSizee lpdwDataType vengono ignorati.

HSE_REQ_END_RESERVED

Funzioni superiore a questo valore sono specifici del server e potrebbero non essere disponibile su tutti i server web che supportano ISAPI.

HSE_REQ_MAP_URL_TO_PATH

Il parametro lpvBuffer è un puntatore al buffer che contiene il percorso logico all'entrata e il percorso fisico in uscita. Il parametro lpdwSize è un puntatore ad DWORD contenente la dimensione del buffer passato lpvBuffer sulla voce e il numero di byte inseriti nel buffer in uscita. Il parametro lpdwDataType viene ignorato). Un'estensione specifica di Microsoft.

HSE_REQ_GET_SSPI_INFO

Il lpvBuffer viene inserito l'handle di contesto e * lpdwDataType viene inserito l'handle credenziale. Un handle di contesto specifica un tipo puntatore o un identificatore di tipo. Consente di specificare un handle di credenziali autenticazione e autorizzazione.

HSE_REQ_TRANSMIT_FILE

Per un più facile metodo di trasmissione di un file da un richiedente, vedere TransmitFile.

&Notanbsp;  Il server non assicura che i buffer sono grandi abbastanza prima di riempire le maniglie e lpdwSize non viene aggiornato in modo da riflettere la quantità di dati copiati nel buffer lpvBuffer . Dal momento che queste sono fissi strutture di dimensioni, si presume i puntatori passati sono puntatori alla struttura e devono essere grandi almeno quanto le strutture di richiesta.

CHttpServerContext panoramica |nbsp; Membri della classe | Gerarchia Chart

Vedi anche

CHttpFilterContext::ServerSupportFunction, CHttpServerContext

Index