Funzione RpcGetAuthorizationContextForClient (rpcasync.h)
La funzione RpcGetAuthorizationContextForClient restituisce il contesto Authz per un client RPC che può essere usato con le funzioni Authz per l'autenticazione ad alte prestazioni. Supportato solo per le sequenze di protocollo ncalrpc e ncacn_* .
Sintassi
RPC_STATUS RpcGetAuthorizationContextForClient(
[in, optional] RPC_BINDING_HANDLE ClientBinding,
[in] BOOL ImpersonateOnReturn,
[in] PVOID Reserved1,
[in, optional] PLARGE_INTEGER pExpirationTime,
[in] LUID Reserved2,
[in] DWORD Reserved3,
[in] PVOID Reserved4,
[out] PVOID *pAuthzClientContext
);
Parametri
[in, optional] ClientBinding
Handle di associazione nel server che rappresenta un'associazione a un client. Il server rappresenta il client indicato da questo handle. Se viene specificato un valore pari a zero, il server rappresenta il client gestito da questo thread del server.
[in] ImpersonateOnReturn
Indirizza la funzione a rappresentare il client in caso di restituzione e quindi restituisce una struttura AUTHZ_CLIENT_CONTEXT_HANDLE . Impostare questo parametro su diverso da zero per rappresentare il client. Vedere la sezione Osservazioni.
[in] Reserved1
Riservato. Deve essere Null.
[in, optional] pExpirationTime
Puntatore alla data e all'ora di scadenza del token. Se non viene passato alcun valore, il token non scade mai. L'ora di scadenza non è attualmente applicata.
[in] Reserved2
Riservato. Deve essere una struttura LUID con ogni membro impostato su zero.
[in] Reserved3
Riservato. Deve essere zero.
[in] Reserved4
Riservato. Deve essere Null.
[out] pAuthzClientContext
Puntatore a una struttura AUTHZ_CLIENT_CONTEXT_HANDLE che può essere passata direttamente alle funzioni Authz. Se la funzione ha esito negativo, il contenuto di questo parametro non è definito.
Valore restituito
Valore | Significato |
---|---|
|
La chiamata ha avuto esito positivo. |
|
Un parametro riservato è diverso dal valore prescritto. |
|
Il client RPC non è stato autenticato correttamente. |
L'errore restituisce un codice di errore RPC_S_* o un codice di errore di Windows. Le informazioni estese sugli errori sono disponibili tramite meccanismi di recupero del codice di errore RPC o Windows standard. Per un elenco di codici di errore validi, vedere Valori restituiti RPC.
Commenti
La funzione RpcGetAuthorizationContextForClient può essere chiamata nello stesso contesto della funzione RpcImpersonateClient . Tutte le funzioni che rappresentano il controllo per determinare se il chiamante ha il privilegio SeImpersonatePrivilege. Se il chiamante ha SeImpersonatePrivilege o se l'identità autenticata è uguale al chiamante, la rappresentazione richiesta è consentita. In caso contrario, la rappresentazione ha esito positivo solo a livello di identificazione.
Nota Il privilegio SeImpersonatePrivilege non è supportato fino a quando Windows XP con Service Pack 2 (SP2).
La funzione RpcGetAuthorizationContextForClient è supportata solo per le sequenze di protocollo ncalrpc e ncacn_* e non è supportata nelle named pipe che implementano solo la sicurezza del trasporto.
La funzione RpcGetAuthorizationContextForClient è thread-safe e può essere chiamata da più thread. Il contesto restituito in pAuthzClientContext è indipendente dalla chiamata di funzione e può essere usato successivamente al completamento. Il chiamante è responsabile della liberazione del contesto con una chiamata alla funzione RpcFreeAuthorizationContext .
Il miglioramento delle prestazioni osservato tramite la funzione RpcGetAuthorizationContextForClient , rispetto ai metodi precedenti di rappresentazione o controllo di accesso o ripristino automatico, dipende dai fattori seguenti:
- Quante volte viene chiamata la funzione per una determinata identità client.
- Sequenza di protocollo e rilevamento delle identità in vigore per la chiamata di funzione.
Le chiamate su ncalrpc con rilevamento delle identità statiche eseguono la funzione RpcGetAuthorizationContextForClient più velocemente rispetto alle chiamate su ncalrpc con il rilevamento dinamico delle identità. Le chiamate su ncacn_* vengono eseguite approssimativamente con la stessa velocità per una determinata sequenza di protocollo, indipendentemente dal fatto che il rilevamento delle identità sia statico o dinamico.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | rpcasync.h (include Rpc.h) |
Libreria | Rpcrt4.lib |
DLL | Rpcrt4.dll |