Condividi tramite


struttura HTTP_REQUEST_AUTH_INFO (http.h)

La struttura HTTP_REQUEST_AUTH_INFO contiene lo stato di autenticazione della richiesta con un handle al token client che il processo di ricezione può usare per rappresentare il client autenticato.

Questa struttura è contenuta nella struttura HTTP_REQUEST_INFO .

Sintassi

typedef struct _HTTP_REQUEST_AUTH_INFO {
  HTTP_AUTH_STATUS       AuthStatus;
  SECURITY_STATUS        SecStatus;
  ULONG                  Flags;
  HTTP_REQUEST_AUTH_TYPE AuthType;
  HANDLE                 AccessToken;
  ULONG                  ContextAttributes;
  ULONG                  PackedContextLength;
  ULONG                  PackedContextType;
  PVOID                  PackedContext;
  ULONG                  MutualAuthDataLength;
  PCHAR                  pMutualAuthData;
  USHORT                 PackageNameLength;
  PWSTR                  pPackageName;
} HTTP_REQUEST_AUTH_INFO, *PHTTP_REQUEST_AUTH_INFO;

Members

AuthStatus

Membro dell'enumerazione HTTP_AUTH_STATUS che indica lo stato di autenticazione finale della richiesta.

Se lo stato di autenticazione non è HttpAuthStatusSuccess, le applicazioni devono ignorare i membri di questa struttura, ad eccezione di AuthStatus, SecStatus e AuthType.

SecStatus

Valore SECURITY_STATUS che indica lo stato di errore di sicurezza quando il membro AuthStatus èHttpAuthStatusFailure.

Flags

Flag di autenticazione che indicano gli attributi di autenticazione seguenti:

Attributo Significato
HTTP_REQUEST_AUTH_FLAG_TOKEN_FOR_CACHED_CRED
Il token fornito è per NTLM ed è basato su una credenziale memorizzata nella cache di una connessione Keep Alive (KA).

AuthType

Membro dell'enumerazione HTTP_REQUEST_AUTH_TYPE che indica lo schema di autenticazione tentato o stabilito per la richiesta.

AccessToken

Handle al token client che il processo di ricezione può usare per rappresentare il client autenticato.

L'handle per il token deve essere chiuso chiamando CloseHandle quando non è più necessario. Questo token è valido solo per la durata della richiesta. Le applicazioni possono rigenerare la richiesta iniziale 401 di eseguire nuovamente l'autenticazione alla scadenza del token.

ContextAttributes

Attributi del contesto client per il token di accesso.

PackedContextLength

Lunghezza, in byte, dell'oggetto PackedContext.

PackedContextType

Tipo di contesto nel membro PackedContext .

PackedContext

Contesto di sicurezza per il tipo di autenticazione.

Le applicazioni possono eseguire query sugli attributi del contesto compresso chiamando l'API SSPI QueryContextAttributes . Tuttavia, le applicazioni devono acquisire un handle di credenziali per il pacchetto di sicurezza per l'AuthType indicato.

L'applicazione deve chiamare l'API SSPI FreeContextBuffer per liberare il contesto serializzato quando non è più necessario.

MutualAuthDataLength

Lunghezza, in byte, del membro pMutualAuthData .

pMutualAuthData

I dati di autenticazione reciproca codificati in Base64 usati nell'intestazione WWW-Authenticate.

PackageNameLength

pPackageName

Commenti

A partire dalla versione HTTP 2.0, la struttura HTTP_REQUEST contiene una struttura HTTP_REQUEST_INFO . Il membro pVoid della struttura HTTP_REQUEST_INFO punta al HTTP_REQUEST_AUTH_INFO quando il tipo di informazioni della richiesta è HttpRequestInfoTypeAuth.

Quando l'applicazione riceve una richiesta con questa struttura e la richiesta non è stata autenticata, può inviare la richiesta iniziale 401 con il set desiderato di intestazioni di WWW-Authenticate nella struttura HTTP_MULTIPLE_KNOWN_HEADERS. Quando l'API SERVER HTTP completa l'handshake di autenticazione, riempie la struttura di HTTP_REQUEST_AUTH_INFO e la passa di nuovo all'applicazione con la richiesta. L'handle per il token di accesso che rappresenta l'identità client viene fornito in questa struttura dall'API server HTTP.

Attributi di contesto

Il membro ContextAttributes viene fornito per gli schemi basati su SSPI. Ad esempio, le applicazioni SSPI possono determinare se ASC_RET_MUTUAL_AUTH è impostata per una sessione autenticata a vicenda.

L'API server HTTP non fornisce l'ora di scadenza per il contesto nel membro PackedContext . Le applicazioni possono richiedere l'ora di scadenza in circostanze specifiche, ad esempio quando la memorizzazione nella cache delle credenziali NTLM è abilitata e le query dell'applicazione per l'ora di scadenza per un contesto memorizzato nella cache. Se l'applicazione server richiede l'ora di scadenza per il contesto client sottostante associato al token di accesso, può ricevere il contesto compresso e chiamare QueryContextAttributes con il SECPKG_ATTR_LIFESPAN.

Dati di autenticazione reciproca

Per impostazione predefinita, l'API server HTTP garantisce che i dati di autenticazione reciproca vengano aggiunti alla risposta finale 200; in generale, le applicazioni server non sono responsabili dell'invio dei dati di autenticazione reciproca.

Tuttavia, le applicazioni possono ricevere i dati di autenticazione reciproca e inviarli con la risposta finale. Quando il membro ReceiveMutualAuth della struttura HTTP_SERVER_AUTHENTICATION_INFO è impostato su true, le applicazioni ricevono le credenziali del server per l'autenticazione reciproca insieme alla richiesta autenticata.

I dati di autenticazione reciproca forniti nel membro pMutualAuthData contengono il valore esatto dell'intestazione WWW-Authenticate senza il nome dell'intestazione. Ad esempio, pMutualAuthData punta a "Negotiate ade02938481eca". L'applicazione compila l'intestazione WWW-Authenticate aggiungendo il valore pMutualAuthData fornito come valore di intestazione di risposta.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Intestazione http.h

Vedi anche

Strutture dell'API SERVER HTTP versione 2.0

HTTP_REQUEST_INFO

HTTP_REQUEST_V2