Condividi tramite


Funzione RpcBindingInqAuthClientExA (rpcdce.h)

Un'applicazione server chiama la funzione rpcBindingInqAuthClientEx per ottenere informazioni estese sul programma client che ha effettuato la chiamata di procedura remota.

Sintassi

RPC_STATUS RpcBindingInqAuthClientExA(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_CSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc,
  unsigned long      Flags
);

Parametri

ClientBinding

Handle di associazione client del client che ha effettuato la chiamata di procedura remota. Questo valore può essere zero. Vedere la sezione Osservazioni.

Privs

Restituisce un puntatore a un handle per le informazioni con privilegi per l'applicazione client che ha eseguito la chiamata di procedura remota sull'handle di associazione ClientBinding. Per chiamate ncalrpc, Privs contiene una stringa con il nome dell'entità del client.

L'applicazione server deve eseguire il cast del parametro Privs al tipo di dati specificato dal parametro AuthnSvc. I dati a cui fa riferimento questo argomento sono di sola lettura e non devono essere modificati dall'applicazione server. Se il server desidera conservare uno dei dati restituiti, il server deve copiare i dati nella memoria allocata dal server.

Per altre informazioni sui provider di servizi di sicurezza, vedere provider di supporto della sicurezza (SSP).

ServerPrincName

Restituisce un puntatore a un puntatore al nome dell'entità server specificato dall'applicazione server che ha chiamato la funzione RpcServerRegisterAuthInfo. Il contenuto del nome restituito e la relativa sintassi sono definiti dal servizio di autenticazione in uso. Per SSP SCHANNEL, il nome dell'entità è in formato msstd. Per altre informazioni sul formato msstd, vedere nomi di entità.

Specificare un valore Null per impedire RpcBindingInqAuthClientEx restituire il parametro ServerPrincName. In questo caso, l'applicazione non chiama la funzione RpcStringFree .

AuthnLevel

Restituisce un puntatore impostato sul livello di autenticazione richiesto dall'applicazione client che ha eseguito la chiamata di procedura remota sull'handle di associazione ClientBinding. Per un elenco dei livelli di autenticazione supportati da RPC, vedere Authentication-Level Costanti.

Specificare un valore Null per impedire RpcBindingInqAuthClientEx restituire il parametro AuthnLevel .

AuthnSvc

Restituisce un puntatore impostato sul servizio di autenticazione richiesto dall'applicazione client che ha eseguito la chiamata di procedura remota nell'handle di associazione ClientBinding. Per un elenco dei servizi di autenticazione supportati da RPC, vedere Authentication-Service Costanti.

Specificare un valore Null per impedire RpcBindingInqAuthClientEx restituire il parametro AuthnSvc .

NotaAuthnSvc corrisponde al SECURITY_STATUS restituito da QueryContextAttributes in ogni provider di servizi condivisi basato su certificati per SECPKG_ATTR_DCE_INFO o SECPKG_ATTR_REMOTE_CERT_CONTEXT.
 

AuthzSvc

Restituisce un puntatore impostato sul servizio di autorizzazione richiesto dall'applicazione client che ha eseguito la chiamata di procedura remota nell'handle di associazione binding. Per un elenco dei servizi di autorizzazione supportati da RPC, vedere Authorization-Service Costanti .

Specificare un valore Null per impedire RpcBindingInqAuthClientEx restituire il parametro AuthzSvc. Questo parametro non viene usato dal servizio di autenticazione RPC_C_AUTHN_WINNT. Il valore restituito sarà sempre RPC_S_AUTHZ_NONE.

Flags

Controlla il formato del nome dell'entità. Questo parametro può essere impostato sul valore seguente.

Valore Significato
RPC_C_FULL_CERT_CHAIN
Restituisce il nome dell'entità in formato fullsic.

Valore restituito

Valore Significato
RPC_S_OK
Chiamata riuscita.
RPC_S_INVALID_BINDING
L'handle di associazione non è valido.
RPC_S_WRONG_KIND_OF_BINDING
Si tratta del tipo errato di associazione per l'operazione.
RPC_S_BINDING_HAS_NO_AUTH
L'associazione non dispone di informazioni di autenticazione.
 
Nota Per un elenco di codici di errore validi, vedere RPC Return Values.
 

Osservazioni

Un'applicazione server chiama la funzione RpcBindingInqAuthClientEx per ottenere il nome dell'entità o gli attributi dei privilegi del client autenticato che ha effettuato la chiamata alla procedura remota. Inoltre, RpcBindingInqAuthClientEx restituisce il servizio di autenticazione, il livello di autenticazione e il nome dell'entità server specificati dal client. Il server può usare i dati restituiti a scopo di autorizzazione.

La libreria di runtime RPC alloca la memoria per il parametro ServerPrincName restituito. L'applicazione è responsabile della chiamata della funzione RpcStringFree per la stringa di argomento restituita.

Per le chiamate RPC sincrone, l'applicazione server può usare zero come valore per il parametro ClientBinding. L'utilizzo di zero recupera le informazioni di autenticazione e autorizzazione dalla chiamata di procedura remota attualmente in esecuzione.

Nota

L'intestazione rpcdce.h definisce RpcBindingInqAuthClientEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione rpcdce.h (include Rpc.h)
libreria Rpcrt4.lib
dll Rpcrt4.dll

Vedere anche

RpcBindingInqAuthClient

RpcBindingSetAuthInfo

RpcStringFree