Metodo IClientSecurity::QueryBlanket (objidl.h)
Recupera le informazioni di autenticazione usate dal client per effettuare chiamate sul proxy specificato.
Sintassi
HRESULT QueryBlanket(
[in] IUnknown *pProxy,
[out] DWORD *pAuthnSvc,
[out] DWORD *pAuthzSvc,
[out] OLECHAR **pServerPrincName,
[out] DWORD *pAuthnLevel,
[out] DWORD *pImpLevel,
[out] void **pAuthInfo,
[out] DWORD *pCapabilites
);
Parametri
[in] pProxy
Puntatore al proxy. Questo parametro non può essere NULL. Per altre informazioni, vedere la sezione Osservazioni.
[out] pAuthnSvc
Servizio di autenticazione corrente. Si tratta di un singolo valore ricavato dall'elenco delle costanti del servizio di autenticazione. Questo parametro non può essere NULL.
[out] pAuthzSvc
Servizio di autorizzazione corrente. Si tratta di un singolo valore ricavato dall'elenco delle costanti di autorizzazione. Questo parametro non può essere NULL.
[out] pServerPrincName
Nome dell'entità corrente. La stringa verrà allocata dal chiamato tramite la funzione CoTaskMemAlloc e deve essere liberata dal chiamante usando la funzione CoTaskMemFree . Si noti che viene restituito il nome effettivo dell'entità. Il flag EOAC_MAKE_FULLSIC non è accettato per convertire il nome prinicpal. Se il chiamante specifica NULL, il nome dell'entità corrente non viene recuperato.
[out] pAuthnLevel
Livello di autenticazione corrente. Si tratta di un singolo valore ricavato dall'elenco delle costanti del livello di autenticazione. Se questo parametro è NULL, il livello di autenticazione corrente non viene recuperato.
[out] pImpLevel
Livello di rappresentazione corrente. Si tratta di un singolo valore ricavato dall'elenco di costanti del livello di rappresentazione. Se questo parametro è NULL, il livello di rappresentazione corrente non viene recuperato.
[out] pAuthInfo
Puntatore a un handle che indica l'identità del client passata all'ultima chiamata IClientSecurity::SetBlanket (o al valore predefinito). I valori predefiniti sono validi solo fino al rilascio del proxy. Se il chiamante specifica NULL, l'identità client non viene recuperata.
Il formato della struttura a cui fa riferimento l'handle restituito dipende dal servizio di autenticazione. Per NTLMSSP e Kerberos, se il client ha specificato una struttura nel parametro pAuthInfo per CoInitializeSecurity, tale valore viene restituito. Per Schannel, se un certificato per il client può essere recuperato dal gestore certificati, tale valore viene restituito qui. In caso contrario, viene restituito NULL . Poiché questo punta al valore stesso e non è una copia, non deve essere manipolato o liberato.
[out] pCapabilites
Funzionalità del proxy. Questi flag sono definiti nell'enumerazione EOLE_AUTHENTICATION_CAPABILITIES . Se questo parametro è NULL, i flag di funzionalità correnti non vengono recuperati.
Valore restituito
Questo metodo può restituire i valori seguenti.
Codice restituito | Descrizione |
---|---|
|
Metodo completato correttamente. |
|
Uno o più argomenti non sono validi. |
|
Memoria insufficiente per creare il buffer pServerPrincName . |
Commenti
QueryBlanket viene chiamato dal client per recuperare le informazioni di autenticazione che COM userà nelle chiamate effettuate dal proxy di interfaccia specificato. Con un puntatore a un'interfaccia nel proxy, il client chiamerebbe prima QueryInterface per un puntatore a IClientSecurity; quindi, con questo puntatore, il client chiamerebbe QueryBlanket, seguito dal rilascio del puntatore. Questa sequenza di chiamate viene incapsulata nella funzione helper CoQueryProxyBlanket.
In pProxy si passa un puntatore all'interfaccia. Non è tuttavia possibile passare un puntatore a un'interfaccia che non usa un proxy. Non è quindi possibile passare un puntatore a un'interfaccia con la parola chiave locale nella definizione dell'interfaccia perché non viene creato alcun proxy per tale interfaccia. IUnknown è l'eccezione a questa regola.
Requisiti
Client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
Server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | objidl.h (include ObjIdl.h) |