Funzione CoQueryClientBlanket (combaseapi.h)

Chiamato dal server per scoprire il client che ha richiamato il metodo in esecuzione nel thread corrente. Si tratta di una funzione helper per IServerSecurity::QueryBlanket.

Sintassi

HRESULT CoQueryClientBlanket(
  [out, optional]     DWORD            *pAuthnSvc,
  [out, optional]     DWORD            *pAuthzSvc,
  [out, optional]     LPOLESTR         *pServerPrincName,
  [out, optional]     DWORD            *pAuthnLevel,
  [out, optional]     DWORD            *pImpLevel,
  [out, optional]     RPC_AUTHZ_HANDLE *pPrivs,
  [in, out, optional] DWORD            *pCapabilities
);

Parametri

[out, optional] pAuthnSvc

Puntatore a una variabile che riceve il servizio di autenticazione corrente. Si tratta di un singolo valore ottenuto dalle costanti del servizio di autenticazione. Se il chiamante specifica NULL, il servizio di autenticazione corrente non viene recuperato.

[out, optional] pAuthzSvc

Puntatore a una variabile che riceve il servizio di autorizzazione corrente. Si tratta di un singolo valore ottenuto 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 chiamante usando CoTaskMemAlloc e deve essere liberata dal chiamante usando CoTaskMemFree. Per impostazione predefinita, i nomi dell'entità Schannel saranno nel modulo msstd. Il modulo fullsic verrà restituito se EOAC_MAKE_FULLSIC viene specificato nel parametro pCapabilities . Per altre informazioni sui moduli msstd e fullsic, vedere Nomi entità. 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 ottenuto dalle costanti a livello di autenticazione. Se il chiamante specifica NULL, il livello di autenticazione corrente non viene recuperato.

[out, optional] pImpLevel

Questo parametro deve essere NULL.

[out, optional] pPrivs

Puntatore a un handle che riceve le informazioni sui privilegi per l'applicazione client. Il formato della struttura a cui fa riferimento l'handle dipende dal servizio di autenticazione. L'applicazione non deve scrivere o liberare la memoria. Le informazioni sono valide solo per la durata della chiamata corrente. Per NTLMSSP e Kerberos, si tratta di una stringa che identifica l'entità client. Per Schannel, si tratta di una struttura CERT_CONTEXT che rappresenta il certificato del client. Se il client non ha alcun certificato, viene restituito NULL . Se il chiamante specifica NULL, le informazioni sui privilegi correnti non vengono recuperate. Vedere RPC_AUTHZ_HANDLE.

[in, out, optional] pCapabilities

Puntatore per restituire flag che indicano le funzionalità della chiamata. Per richiedere che il nome dell'entità venga restituito in formato fullsic se Schannel è il servizio di autenticazione, il chiamante può impostare il flag EOAC_MAKE_FULLSIC in questo parametro. Se il chiamante specifica NULL, le funzionalità correnti non vengono recuperate.

Valore restituito

Questa funzione può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY e S_OK.

Commenti

CoQueryClientBlanket viene chiamato dal server per ottenere informazioni di sicurezza sul client che ha richiamato il metodo in esecuzione nel thread corrente. Questa funzione incapsula la sequenza seguente di chiamate comuni (gestione degli errori esclusa):

    CoGetCallContext(IID_IServerSecurity, (void**)&pss);
    pss->QueryBlanket(pAuthnSvc, pAuthzSvc, pServerPrincName, 
                pAuthnLevel, pImpLevel, pPrivs, pCapabilities);
    pss->Release();

Questa sequenza chiama CoGetCallContext per ottenere un puntatore a IServerSecurity e, con il puntatore risultante, chiama IServerSecurity::QueryBlanket e quindi rilascia il puntatore.

Requisiti

   
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

CoGetCallContext

CoQueryProxyBlanket

IServerSecurity::QueryBlanket

Sicurezza in COM