Funzione RpcBindingSetAuthInfoW (rpcdce.h)
La funzione rpcBindingSetAuthInfo
Sintassi
RPC_STATUS RpcBindingSetAuthInfoW(
RPC_BINDING_HANDLE Binding,
RPC_WSTR ServerPrincName,
unsigned long AuthnLevel,
unsigned long AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
unsigned long AuthzSvc
);
Parametri
Binding
Handle di associazione 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.
AuthnLevel
Livello di autenticazione da eseguire su chiamate di procedura remota effettuate usando Binding. Per un elenco dei livelli di autenticazione supportati da RPC, vedere l'elenco delle costanti Authentication-Level.
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 si specifica RPC_C_AUTHN_DEFAULT, la libreria di runtime RPC usa il servizio di autenticazione RPC_C_AUTHN_WINNT per le chiamate di procedura remota effettuate utilizzando Binding.
AuthIdentity
Handle per 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.
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.
Valore restituito
Valore | Significato |
---|---|
|
Chiamata riuscita. |
|
L'handle di associazione non è valido. |
|
Si tratta del tipo errato di associazione per l'operazione. |
|
Servizio di autenticazione sconosciuto. |
Osservazioni
Un'applicazione client chiama la funzione rpcBindingSetAuthInfo
A meno che un client non chiami RpcBindingSetAuthInfo, non vengono autenticate chiamate di procedura remota nell'handle di associazione binding. Un server può chiamare RpcBindingInqAuthClient dall'interno di una chiamata di procedura remota per determinare se tale chiamata è stata autenticata.
La funzione RpcBindingSetAuthInfo
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
L'intestazione rpcdce.h definisce RpcBindingSetAuthInfo 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 [app desktop | App UWP] |
server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
rpcdce.h (include Rpc.h) |
libreria |
Rpcrt4.lib |
dll | Rpcrt4.dll |