Condividi tramite


Funzione RpcBindingInqAuthClientW (rpcdce.h)

Un'applicazione server chiama la funzione rpcBindingInqAuthClient per ottenere il nome dell'entità o gli attributi dei privilegi del client autenticato che ha effettuato la chiamata alla procedura remota.

Sintassi

RPC_STATUS RpcBindingInqAuthClientW(
  RPC_BINDING_HANDLE ClientBinding,
  RPC_AUTHZ_HANDLE   *Privs,
  RPC_WSTR           *ServerPrincName,
  unsigned long      *AuthnLevel,
  unsigned long      *AuthnSvc,
  unsigned long      *AuthzSvc
);

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.

I dati a cui fa riferimento questo parametro 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.

I dati a cui punta il parametro Privs proviene direttamente dal provider di servizi condivisi. Pertanto, il formato dei dati è specifico del provider di servizi condivisi. 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 il provider di servizi condivisi SCHANNEL, il nome dell'entità è in formato Microsoft Standard (msstd). Per altre informazioni sul formato msstd, vedere nomi di entità.

Specificare un valore Null per impedire RpcBindingInqAuthClient di 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.

Specificare un valore Null per impedire RpcBindingInqAuthClient 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 livelli di autenticazione supportati da RPC, vedere Authentication-Level Costanti.

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

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 ClientBinding.

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

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 rpcBindingInqAuthClient per ottenere il nome dell'entità o gli attributi dei privilegi del client autenticato che ha effettuato la chiamata alla procedura remota. Inoltre, RpcBindingInqAuthClient 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 RpcBindingInqAuthClient 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

RpcBindingSetAuthInfo

RpcStringFree