Funzione RpcBindingSetAuthInfo (rpcdce.h)

La funzione RpcBindingSetAuthInfo imposta le informazioni di autenticazione e autorizzazione di un handle di associazione.

Sintassi

RPC_STATUS RpcBindingSetAuthInfo(
  RPC_BINDING_HANDLE       Binding,
  RPC_CSTR                 ServerPrincName,
  unsigned long            AuthnLevel,
  unsigned long            AuthnSvc,
  RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  unsigned long            AuthzSvc
);

Parametri

Binding

Handle di associazione del server a cui applicare le informazioni di autenticazione e autorizzazione.

ServerPrincName

Puntatore al nome dell'entità di sicurezza prevista del server a cui fa riferimento binding. Il contenuto del nome e la relativa sintassi sono definiti dal servizio di autenticazione in uso.

Nota Per il set di nomi di destinazione consentiti per gli SSP, fare riferimento ai commenti nella documentazione di InitializeSecurityContext .
 

AuthnLevel

Livello di autenticazione da eseguire sulle chiamate di procedura remota effettuate tramite Binding. Per un elenco dei livelli di autenticazione supportati da RPC, vedere l'elenco delle costanti a livello di autenticazione.

AuthnSvc

Servizio di autenticazione da usare. Vedere la nota.

Specificare RPC_C_AUTHN_NONE per disattivare l'autenticazione per le chiamate di procedura remota effettuate tramite Binding.

Se viene specificato RPC_C_AUTHN_DEFAULT, la libreria di runtime RPC usa il servizio di autenticazione RPC_C_AUTHN_WINNT per le chiamate di routine remote effettuate tramite Binding.

AuthIdentity

Gestire la struttura contenente le credenziali di autenticazione e autorizzazione del client appropriate per il servizio di autenticazione e autorizzazione selezionato. Quando si usa il servizio di autenticazione RPC_C_AUTHN_WINNT AuthIdentity deve essere un puntatore a una struttura SEC_WINNT_AUTH_IDENTITY (definita in Rpcdce.h). I servizi di autenticazione Kerberos e Negotiate usano anche la struttura SEC_WINNT_AUTH_IDENTITY .

Quando si seleziona il servizio di autenticazione RPC_C_AUTHN_GSS_SCHANNEL, il parametro AuthIdentity deve essere un puntatore a una struttura SCHANNEL_CRED (definita in Schannel.h). Specificare un valore Null per usare il contesto di accesso di sicurezza per lo spazio indirizzi corrente. Passare il valore RPC_C_NO_CREDENTIALS per usare un contesto di accesso anonimo.

Nota Quando si seleziona il servizio di autenticazione RPC_C_AUTHN_GSS_SCHANNEL, il parametro AuthIdentity può anche essere un puntatore a una struttura SCH_CRED . Tuttavia, in Windows XP e versioni successive di Windows, l'unica struttura accettabile da passare come parametro AuthIdentity per il servizio di autenticazione RPC_C_AUTHN_GSS_SCHANNEL è la struttura SCHANNEL_CRED .
 

AuthzSvc

Servizio di autorizzazione implementato dal server per l'interfaccia di interesse. Vedere la nota.

La validità e l'attendibilità dei dati di autorizzazione, come tutti i dati dell'applicazione, dipendono dal servizio di autenticazione e dal livello di autenticazione selezionato. Questo parametro viene ignorato quando si usa il servizio di autenticazione RPC_C_AUTHN_WINNT.

Nota Per altre informazioni, vedere Costanti authentication-service.
 

Valore restituito

Valore Significato
RPC_S_OK
La chiamata ha avuto esito positivo.
RPC_S_INVALID_BINDING
Handle di associazione non valido.
RPC_S_WRONG_KIND_OF_BINDING
Si tratta del tipo di binding errato per l'operazione.
RPC_S_UNKNOWN_AUTHN_SERVICE
Servizio di autenticazione sconosciuto.
 
Nota Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
 

Commenti

Un'applicazione client chiama la funzione RpcBindingSetAuthInfo per configurare un handle di associazione server per effettuare chiamate di routine remote autenticate. Non è necessario un client per chiamare questa funzione.

A meno che un client non chiami RpcBindingSetAuthInfo, non vengono autenticate chiamate di routine remote nell'handle di associazione di binding. Un server può chiamare RpcBindingInqAuthClient dall'interno di una chiamata di procedura remota per determinare se tale chiamata è stata autenticata.

La funzione RpcBindingSetAuthInfo crea uno snapshot delle credenziali. Pertanto, la memoria dedicata al parametro AuthIdentity può essere liberata prima dell'handle di associazione.

A causa di requisiti diversi di versioni diverse di Microsoft RPC, Microsoft consiglia di mantenere un puntatore al parametro AuthIdentity purché esista l'handle di associazione. In questo modo, aumenta la portabilità dell'applicazione.

Windows Server 2003 con SP1 e Windows XP con SP2: Per Windows XP SP2 e Windows Server 2003 SP1, il puntatore al parametro AuthIdentity non deve essere mantenuto per la durata dell'handle di associazione. Questo puntatore deve essere mantenuto solo se vengono effettuate chiamate successive a RpcBindingInqAuthInfo o RpcBindingInqAuthInfoEx .

Nota La funzione RpcBindingSetAuthInfo non deve essere chiamata su un handle di associazione mentre è in corso una chiamata RPC sullo stesso handle. In questo modo vengono generati risultati non definiti.
 

Requisiti

   
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione rpcdce.h (include Rpc.h)
Libreria Rpcrt4.lib
DLL Rpcrt4.dll

Vedi anche

Servizi di sicurezza MSMQ

RpcBindingInqAuthInfo

RpcBindingSetOption

RpcServerRegisterAuthInfo