Funzione AuthzCachedAccessCheck (authz.h)

La funzione AuthzCachedAccessCheck esegue un controllo di accesso rapido basato su un handle memorizzato nella cache contenente i bit statici concessi da una chiamata AuthzAccessCheck precedente.

Sintassi

AUTHZAPI BOOL AuthzCachedAccessCheck(
  [in]  DWORD                             Flags,
  [in]  AUTHZ_ACCESS_CHECK_RESULTS_HANDLE hAccessCheckResults,
  [in]  PAUTHZ_ACCESS_REQUEST             pRequest,
  [in]  AUTHZ_AUDIT_EVENT_HANDLE          hAuditEvent,
  [out] PAUTHZ_ACCESS_REPLY               pReply
);

Parametri

[in] Flags

Riservato per utilizzi futuri.

[in] hAccessCheckResults

Handle per i risultati del controllo dell'accesso memorizzato nella cache.

[in] pRequest

Handle di richiesta di accesso specificando la maschera di accesso desiderata, l'entità self SID e la struttura dell'elenco dei tipi di oggetto (se presente).

[in] hAuditEvent

Struttura che contiene informazioni di controllo specifiche dell'oggetto. Quando il valore di questo parametro non è Null, viene richiesto automaticamente un controllo. Le informazioni di controllo statiche vengono lette dalla struttura di Resource Manager.

[out] pReply

Puntatore a un handle AUTHZ_ACCESS_REPLY che restituisce i risultati del controllo di accesso come matrice di coppie GrantedAccessMask/ErrorValue. Il numero di coppie restituite viene fornito dal chiamante nel membro ResultListLength della struttura AUTHZ_ACCESS_REPLY .

Valore restituito

Se la funzione ha esito positivo, restituisce TRUE.

Se la funzione ha esito negativo, restituisce FALSE. Per informazioni dettagliate sull'errore, chiamare GetLastError.

I valori previsti dei membri dell'errore degli elementi della matrice restituiti vengono visualizzati nella tabella seguente.

Codice restituito Descrizione
ERROR_SUCCESS
Tutti i bit di accesso, non inclusi i MAXIMUM_ALLOWED, vengono concessi e il membro GrantedAccessMask del parametro pReply non è zero.
ERROR_PRIVILEGE_NOT_HELD
Il membro DesiredAccess del parametro pRequest include ACCESS_SYSTEM_SECURITY e il client non ha il privilegio SeSecurityPrivilege.
ERROR_ACCESS_DENIED
Uno o più dei seguenti è vero:
  • I bit richiesti non vengono concessi.
  • Il bit massimo consentito è attivo e l'accesso concesso è zero.
  • Il membro DesiredAccess del parametro pRequest è zero.

Commenti

Il puntatore al contesto client viene archiviato nel parametro AuthzHandle . La struttura del contesto client deve essere esattamente la stessa che era al momento della creazione di AuthzHandle . Questa restrizione è per i campi seguenti:

  • SID
  • RestrictedSids
  • Privilegi
I puntatori al descrittore di sicurezza primario e alla matrice di descrittore di sicurezza facoltativo vengono archiviati in AuthzHandle al momento della creazione dell'handle. Questi puntatori devono comunque essere validi.

La funzione AuthzCachedAccessCheck gestisce una cache come risultato della valutazione dei criteri di accesso centrale negli oggetti, a meno che non vengano ignorate, ad esempio quando viene usato il flag di AUTHZ_RM_FLAG_NO_CENTRAL_ACCESS_POLICIES. Il client può chiamare la funzione AuthzFreeCentralAccessPolicyCache per liberare questa cache. Si noti che questo richiede una chiamata successiva a AuthzCachedAccessCheck per ricompilare la cache, se necessario.

Per altre informazioni, vedere le panoramica su Come funziona AccessCheck e i criteri di autorizzazione centralizzati .

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 authz.h
Libreria Authz.lib
DLL Authz.dll
Componente ridistribuibile Windows Server 2003 Administration Tools Pack in Windows XP

Vedi anche

AUTHZ_ACCESS_REPLY

AuthzAccessCheck

AuthzFreeCentralAccessPolicyCache

AuthzInitializeResourceManager

Funzioni di base Controllo di accesso

Criteri di autorizzazione centralizzati

Funzionamento di AccessCheck