Funzione RpcBindingSetAuthInfoExA (rpcdce.h)
La funzione RpcBindingSetAuthInfoEx imposta l'autenticazione, l'autorizzazione e le informazioni sulla qualità del servizio di un handle di associazione.
Sintassi
RPC_STATUS RpcBindingSetAuthInfoExA(
RPC_BINDING_HANDLE Binding,
RPC_CSTR ServerPrincName,
unsigned long AuthnLevel,
unsigned long AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc,
RPC_SECURITY_QOS *SecurityQos
);
Parametri
Binding
Handle di associazione server in cui sono impostate le informazioni di autenticazione e autorizzazione.
ServerPrincName
Puntatore al nome dell'entità previsto del server a cui fa riferimento binding. Il contenuto del nome e della relativa sintassi sono definiti dal servizio di autenticazione in uso.
AuthnLevel
Livello di autenticazione da eseguire nelle chiamate di routine remote effettuate tramite Binding. Per un elenco dei livelli di autenticazione supportati da RPC, vedere Costanti a livello di autenticazione.
AuthnSvc
Servizio di autenticazione da usare.
Specificare RPC_C_AUTHN_NONE per disattivare l'autenticazione per le chiamate di routine remote 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
Handle per la struttura che contiene 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_WINNTAuthIdentity deve essere un puntatore a una struttura SEC_WINNT_AUTH_IDENTITY (definita in Rpcdce.h). I servizi di autenticazione Kerberos e Negoziano usano anche la struttura di SEC_WINNT_AUTH_IDENTITY .
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. Si noti che RPC_C_NO_CREDENTIALS è valido solo se RPC_C_AUTHN_GSS_SCHANNEL è selezionato come servizio di autenticazione.
AuthzSvc
Servizio di autorizzazione implementato dal server per l'interfaccia di interesse. La validità e la attendibilità dei dati di autorizzazione, come tutti i dati dell'applicazione, dipende 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. Vedere la nota.
SecurityQos
Puntatore alla struttura RPC_SECURITY_QOS , che definisce la qualità della sicurezza del servizio.
Valore restituito
Valore | Significato |
---|---|
|
La chiamata ha avuto esito positivo. |
|
L'handle di associazione non è valido. |
|
Questo è stato il tipo di associazione sbagliato per l'operazione. |
|
Servizio di autenticazione sconosciuto. |
Commenti
Un'applicazione client chiama la funzione RpcBindingSetAuthInfoEx per configurare un handle di associazione server per effettuare chiamate di routine remote autenticate. Questa funzione offre la possibilità di impostare le informazioni sulla qualità del servizio di sicurezza nell'handle di associazione. In caso contrario, è identico a RpcBindingSetAuthInfo.
A meno che un client non chiami RpcBindingSetAuthInfoEx, tutte le chiamate di procedura remota sull'associazione non sono autenticate. Non è necessario che un client chiami questa funzione.
La funzione RpcBindingSetAuthInfoEx acquisisce uno snapshot delle credenziali. Pertanto, la memoria dedicata al parametro AuthIdentity può essere liberata prima dell'handle di associazione. L'eccezione è quando l'applicazione usa RpcBindingSetAuthInfoEx con RPC_C_QOS_IDENTITY_DYNAMIC e specifica anche un valore non NULL per AuthIdentity.
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 eseguite chiamate successive a RpcBindingInqAuthInfo o RpcBindingInqAuthInfoEx.
Nota
L'intestazione rpcdce.h definisce RpcBindingSetAuthInfoEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
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 |