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