Funzione CoQueryProxyBlanket (combaseapi.h)
Recupera le informazioni di autenticazione usate dal client per effettuare chiamate sul proxy specificato. Questa è una funzione helper per IClientSecurity::QueryBlanket.
Sintassi
HRESULT CoQueryProxyBlanket(
[in] IUnknown *pProxy,
[out, optional] DWORD *pwAuthnSvc,
[out, optional] DWORD *pAuthzSvc,
[out, optional] LPOLESTR *pServerPrincName,
[out, optional] DWORD *pAuthnLevel,
[out, optional] DWORD *pImpLevel,
[out, optional] RPC_AUTH_IDENTITY_HANDLE *pAuthInfo,
[out, optional] DWORD *pCapabilites
);
Parametri
[in] pProxy
Puntatore che indica il proxy da eseguire per la query. Questo parametro non può essere NULL. Per altre informazioni, vedere la sezione Osservazioni.
[out, optional] pwAuthnSvc
Puntatore a una variabile che riceve il servizio di autenticazione corrente. Si tratta di un singolo valore ricavato dalle costanti del servizio di autenticazione. Questo parametro non può essere NULL.
[out, optional] pAuthzSvc
Puntatore a una variabile che riceve il servizio di autorizzazione corrente. Si tratta di un singolo valore ricavato dalle costanti di autorizzazione. Se il chiamante specifica NULL, il servizio di autorizzazione corrente non viene recuperato.
[out, optional] pServerPrincName
Nome dell'entità corrente. La stringa verrà allocata dal chiamato tramite CoTaskMemAlloc e deve essere liberata dal chiamante usando CoTaskMemFree. Il flag EOAC_MAKE_FULLSIC non è accettato nel parametro pCapabilities . Per altre informazioni sui moduli msstd e fullsic, vedere Principal Names.For more information about the msstd and fullsic forms, see Principal Names. Se il chiamante specifica NULL, il nome dell'entità corrente non viene recuperato.
[out, optional] pAuthnLevel
Puntatore a una variabile che riceve il livello di autenticazione corrente. Si tratta di un singolo valore ricavato dalle costanti del livello di autenticazione. Se il chiamante specifica NULL, il livello di autenticazione corrente non viene recuperato.
[out, optional] pImpLevel
Puntatore a una variabile che riceve il livello di rappresentazione corrente. Si tratta di un singolo valore ricavato dalle costanti del livello di rappresentazione. Se il chiamante specifica NULL, il livello di rappresentazione corrente non viene recuperato.
[out, optional] pAuthInfo
Puntatore a un handle che riceve l'identità del client passato 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 dipende dal servizio di autenticazione. L'applicazione non deve scrivere o liberare la memoria. 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 . Vedere RPC_AUTH_IDENTITY_HANDLE.
[out, optional] pCapabilites
Puntatore a una variabile che riceve le funzionalità del proxy. Se il chiamante specifica NULL, i flag di funzionalità correnti non vengono recuperati.
Valore restituito
Questa funzione può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY e S_OK.
Commenti
CoQueryProxyBlanket viene chiamato dal client per recuperare le informazioni di autenticazione che COM userà nelle chiamate effettuate dal proxy specificato. Questa funzione incapsula la sequenza seguente di chiamate comuni (gestione degli errori esclusa):
pProxy->QueryInterface(IID_IClientSecurity, (void**)&pcs);
pcs->QueryBlanket(
pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, ppAuthInfo, pCapabilities
);
pcs->Release();
Questa sequenza chiama QueryInterface nel proxy per ottenere un puntatore a IClientSecurity e con il puntatore risultante chiama IClientSecurity::QueryBlanket e quindi rilascia il puntatore.
In pProxy è possibile passare qualsiasi proxy, ad esempio un proxy che si ottiene tramite una chiamata a CoCreateInstance o CoUnmarshalInterface, oppure è possibile passare un puntatore di interfaccia. Può essere qualsiasi interfaccia. Non è possibile passare un puntatore a un elemento che non è un proxy. Pertanto, non è 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
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | combaseapi.h (include Objbase.h) |
Libreria | Ole32.lib |
DLL | Ole32.dll |