Condividi tramite


enumerazione EOLE_AUTHENTICATION_CAPABILITIES (objidlbase.h)

Specifica varie funzionalità in CoInitializeSecurity e IClientSecurity::SetBlanket (o nella relativa funzione helper CoSetProxyBlanket).

Sintassi

typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
  EOAC_NONE = 0,
  EOAC_MUTUAL_AUTH = 0x1,
  EOAC_STATIC_CLOAKING = 0x20,
  EOAC_DYNAMIC_CLOAKING = 0x40,
  EOAC_ANY_AUTHORITY = 0x80,
  EOAC_MAKE_FULLSIC = 0x100,
  EOAC_DEFAULT = 0x800,
  EOAC_SECURE_REFS = 0x2,
  EOAC_ACCESS_CONTROL = 0x4,
  EOAC_APPID = 0x8,
  EOAC_DYNAMIC = 0x10,
  EOAC_REQUIRE_FULLSIC = 0x200,
  EOAC_AUTO_IMPERSONATE = 0x400,
  EOAC_DISABLE_AAA = 0x1000,
  EOAC_NO_CUSTOM_MARSHAL = 0x2000,
  EOAC_RESERVED1 = 0x4000
} EOLE_AUTHENTICATION_CAPABILITIES;

Costanti

 
EOAC_NONE
Valore: 0
Indica che non sono impostati flag di funzionalità.
EOAC_MUTUAL_AUTH
Valore: 0x1
Se questo flag viene specificato, verrà ignorato. Il supporto per l'autenticazione reciproca viene fornito automaticamente da alcuni servizi di autenticazione. Per altre informazioni, vedere PACCHETTI COM e sicurezza .
EOAC_STATIC_CLOAKING
Valore: 0x20
Imposta il mantello statico. Quando questo flag è impostato, DCOM usa il token di thread (se presente) quando determina l'identità del client. Tuttavia, l'identità del client viene determinata nella prima chiamata a ogni proxy (se SetBlanket non viene chiamata) e ogni volta che Viene chiamato CoSetProxyBlanket nel proxy. Per altre informazioni sul mantello statico, vedere Mantello.


CoInitializeSecurity e IClientSecurity::SetBlanket restituiscono errori se vengono impostati entrambi i flag di mantello o se uno dei flag è impostato quando Schannel è il servizio di autenticazione.
EOAC_DYNAMIC_CLOAKING
Valore: 0x40
Imposta il mantello dinamico. Quando questo flag è impostato, DCOM usa il token di thread (se presente) quando determina l'identità del client. In ogni chiamata a un proxy viene esaminato il token del thread corrente per determinare se l'identità del client è stata modificata (a causa di un costo aggiuntivo delle prestazioni) e il client viene autenticato di nuovo solo se necessario. Il mantello dinamico può essere impostato solo dai client. Per altre informazioni sul mantello dinamico, vedere Mantello.


CoInitializeSecurity e IClientSecurity::SetBlanket restituiscono errori se vengono impostati entrambi i flag di mantello o se uno dei flag è impostato quando Schannel è il servizio di autenticazione.
EOAC_ANY_AUTHORITY
Valore: 0x80
Questo flag è obsoleto.
EOAC_MAKE_FULLSIC
Valore: 0x100
Causa l'invio di nomi dell'entità server Schannel in formato fullsic ai client come parte della negoziazione di sicurezza predefinita. Il nome viene estratto dal certificato del server. Per altre informazioni sul modulo fullsic, vedere Nomi entità.
EOAC_DEFAULT
Valore: 0x800
Indica a DCOM di usare le funzionalità valide dalla chiamata a CoInitializeSecurity. Se CoInitializeSecurity non è stato chiamato, EOAC_NONE verrà usato per il flag delle funzionalità. Questo flag può essere impostato solo dai client in una chiamata a IClientSecurity::SetBlanket o CoSetProxyBlanket.
EOAC_SECURE_REFS
Valore: 0x2
Autentica le chiamate di conteggio dei riferimenti distribuite per impedire agli utenti malintenzionati di rilasciare oggetti ancora in uso. Se questo flag è impostato, che può essere eseguito solo in una chiamata a CoInitializeSecurity dal client, il livello di autenticazione (in dwAuthnLevel) non può essere impostato su nessuno.

Il server autentica sempre le chiamate release. L'impostazione di questo flag impedisce a un client autenticato di rilasciare gli oggetti di un altro client autenticato. È consigliabile che i client impostano sempre questo flag, anche se le prestazioni sono interessate a causa del sovraccarico associato alla sicurezza aggiuntiva.
EOAC_ACCESS_CONTROL
Valore: 0x4
Indica che il parametro pSecDesc in CoInitializeSecurity è un puntatore a un'interfaccia IAccessControl in un oggetto controllo di accesso. Quando DCOM effettua controlli di sicurezza, chiama IAccessControl::IsAccessAllowed. Questo flag viene impostato solo dal server.


CoInitializeSecurity restituisce un errore se vengono impostati sia i flag di EOAC_APPID che di EOAC_ACCESS_CONTROL.
EOAC_APPID
Valore: 0x8
Indica che il parametro pSecDesc in CoInitializeSecurity è un puntatore a un GUID che è un AppID. La funzione CoInitializeSecurity cerca l'AppID nel Registro di sistema e legge le impostazioni di sicurezza da qui. Se questo flag è impostato, tutti gli altri parametri su CoInitializeSecurity vengono ignorati e devono essere zero. Solo il server può impostare questo flag. Per altre informazioni su questo flag di funzionalità, vedere la sezione Osservazioni di seguito.


CoInitializeSecurity restituisce un errore se vengono impostati sia i flag di EOAC_APPID che di EOAC_ACCESS_CONTROL.
EOAC_DYNAMIC
Valore: 0x10
Riservato.
EOAC_REQUIRE_FULLSIC
Valore: 0x200
Causa l'esito negativo delle chiamate CoSetProxyBlanket in cui viene specificato un nome dell'entità Schannel in qualsiasi formato diverso da fullsic. Questo flag è attualmente disponibile solo per i client. Per altre informazioni sul modulo fullsic, vedere Nomi entità.
EOAC_AUTO_IMPERSONATE
Valore: 0x400
Riservato.
EOAC_DISABLE_AAA
Valore: 0x1000
Causa l'attivazione in cui un processo del server verrà avviato sotto l'identità del chiamante (attiva come attivatore) non riesce con E_ACCESSDENIED. Questo valore, che può essere specificato solo in una chiamata a CoInitializeSecurity dal client, consente a un'applicazione eseguita in un account con privilegi (ad esempio LocalSystem) di impedire che l'identità venga usata per avviare componenti non attendibili.

Una chiamata di attivazione che usa CLSCTX_ENABLE_AAA dell'enumerazione CLSCTX consentirà l'attivazione come attivazione per tale chiamata.
EOAC_NO_CUSTOM_MARSHAL
Valore: 0x2000
La specifica di questo flag consente di proteggere la sicurezza del server quando si usa DCOM o COM+. Riduce le probabilità di eseguire DLL arbitrarie perché consente il marshalling di solo CLSID implementati in Ole32.dll, ComAdmin.dll, ComSvcs.dll o Es.dll o che implementano l'ID categoria CATID_MARSHALER. Qualsiasi servizio critico per l'operazione di sistema deve impostare questo flag.
EOAC_RESERVED1
Valore: 0x4000

Commenti

Quando il flag di EOAC_APPID è impostato, CoInitializeSecurity cerca il livello di autenticazione in AppID. Se il livello di autenticazione non viene trovato, cerca il livello di autenticazione predefinito. Se il livello di autenticazione predefinito non viene trovato, genera un livello di autenticazione predefinito di connessione. Se il livello di autenticazione non è RPC_C_AUTHN_LEVEL_NONE, CoInitializeSecurity cerca il valore di autorizzazione di accesso in AppID. Se non viene trovato, cerca il valore predefinito dell'autorizzazione di accesso. In caso contrario, genera un'autorizzazione di accesso predefinita. Tutte le altre impostazioni di sicurezza vengono determinate allo stesso modo di un'applicazione legacy.

Se AppID è NULL, CoInitializeSecurity cerca il nome dell'applicazione .exe nel Registro di sistema e usa l'AppID archiviato. Se appID non esiste, vengono usate le impostazioni predefinite del computer.

Il metodo IClientSecurity::SetBlanket e la funzione CoSetProxyBlanket restituiscono un errore se uno dei flag seguenti è impostato nel parametro funzionalità: EOAC_SECURE_REFS, EOAC_ACCESS_CONTROL, EOAC_APPID, EOAC_DYNAMIC EOAC_REQUIRE_FULLSIC, EOAC_DISABLE_AAA, EOAC_DISABLE_AAA o EOAC_NO_CUSTOM_MARSHAL.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione objidlbase.h (include Objidl.h)

Vedi anche

Coinitializesecurity

CoSetProxyBlanket

IAccessControl

IClientSecurity::SetBlanket