Determinazione delle autorizzazioni concesse
Importante |
---|
In .NET Framework versione 4, Common Language Runtime non fornisce più criteri di sicurezza per i computer.È consigliabile l'utilizzo di criteri di restrizione software Windows in sostituzione dei criteri di sicurezza CLR.Le informazioni incluse in questo argomento si applicano a .NET Framework 3.5 e versioni precedenti e non alle versioni 4 e successive.Per ulteriori informazioni su questa e altre modifiche, vedere Modifiche della sicurezza in .NET Framework 4. |
Per i domini applicazione, il set di autorizzazioni concesse non è altro che il set delle autorizzazioni consentite.
Per determinare il set di autorizzazioni concesse agli assembly, invece, vengono presi in considerazione altri fattori durante la fase del caricamento degli assembly stessi. Un assembly può contenere richieste di sicurezza dichiarative che specificano le autorizzazioni necessarie o richieste dal codice. Nella seguente tabella vengono descritti i set di autorizzazioni che possono essere richiesti dal codice.
Set di autorizzazioni |
Descrizione |
---|---|
Obbligatorio |
Specifica il minimo set di autorizzazioni necessario a un codice. |
Facoltativo |
Identifica autorizzazioni richieste da un codice, in aggiunta al set minimo. Le autorizzazioni non identificate nel set minimo o facoltativo saranno implicitamente rifiutate. |
Refused |
Specifica autorizzazioni che non dovranno mai essere concesse al codice. |
Se nessuna delle tre richieste di autorizzazioni è presente, all'assembly verrà concesso semplicemente il set di autorizzazioni consentito dai criteri. Se tuttavia è presente almeno una richiesta, le autorizzazioni richieste vengono prese in considerazione dall'ambiente di esecuzione attraverso il seguente processo:
Viene eseguito il calcolo delle autorizzazioni consentite per l'assembly e viene garantito che questo sia autorizzato all'esecuzione. Se l'autorizzazione all'esecuzione non è presente, viene generato un errore PolicyException e il codice non viene autorizzato all'esecuzione.
Viene verificato se il set delle autorizzazioni richieste è un sottoinsieme del set di autorizzazioni consentite. In caso contrario, viene generato un evento PolicyException dal runtime e non viene consentita l'esecuzione del codice.
Vengono intersecate le autorizzazioni facoltative richieste con il set di autorizzazioni consentite. Se non sono richieste autorizzazioni facoltative, si presume che il PermissionSet facoltativo sia FullTrust.
Il set risultato dal passaggio 3 viene unito al minimo di autorizzazioni richieste.
Vengono infine sottratte le autorizzazioni rifiutate dal risultato del passaggio 4.