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

Vedi anche

CoQueryClientBlanket

CoSetProxyBlanket

IClientSecurity::QueryBlanket

Sicurezza in COM