Nozioni fondamentali sulla sicurezza per l’accesso al codice
È necessario che tutte le applicazioni basate su Common Language Runtime, ovvero tutte le applicazioni gestite, interagiscano con il relativo sistema di sicurezza. Quando un'applicazione gestita viene caricata, il relativo host concede automaticamente un set di autorizzazioni a tale applicazione. Queste autorizzazioni sono determinate dalle impostazioni di sicurezza locali dell'host o dalla sandbox che contiene l'applicazione. A seconda delle autorizzazioni, l'applicazione viene eseguita correttamente o genera un'eccezione di sicurezza.
L'host predefinito per le applicazioni desktop consente l'esecuzione del codice in modalità di attendibilità totale. Se pertanto l'applicazione è destinata al desktop, dispone di un set di autorizzazione senza restrizioni. Altri host o sandbox forniscono un set di autorizzazioni limitato per le applicazioni. Poiché il set di autorizzazioni può essere diverso da host a host, è necessario progettare l'applicazione in modo che utilizzi solo le autorizzazioni consentite dall'host di destinazione.
È necessario avere familiarità con i concetti attinenti alla sicurezza dall'accesso di codice, illustrati di seguito, per poter scrivere applicazioni efficienti basate su Common Language Runtime:
Scrivere codice indipendente dai tipi: per consentire al codice di usufruire dei vantaggi della sicurezza per l'accesso al codice, è necessario utilizzare un compilatore che generi codice indipendente dai tipi verificabile. Per ulteriori informazioni, vedere Scrittura di codice indipendente dai tipi verificabile.
Utilizzare la sintassi imperativa e la sintassi dichiarativa: l'interazione con il sistema di sicurezza dell'ambiente di esecuzione viene ottenuta tramite chiamate di sicurezza imperative e dichiarative. Le chiamate dichiarative sono eseguite mediante l'impiego di attributi, le chiamate imperative mediante l'utilizzo di nuove istanze di classi all'interno del codice. Alcune chiamate possono essere eseguite solo in modo imperativo, altre solo in modo dichiarativo e altre ancora in nessun modo. Per ulteriori informazioni, vedere Sintassi di sicurezza.
Utilizzare librerie di classi sicure: le librerie di classi utilizzano la sicurezza dall'accesso di codice per specificare le autorizzazioni necessarie per consentirne l'accesso. È necessario conoscere esattamente le autorizzazioni necessarie per l'accesso a ognuna delle librerie utilizzate dal codice.
Codice Transparent: in .NET Framework versione 4 e versioni successive, oltre a identificare autorizzazioni specifiche è necessario determinare se il codice deve essere eseguito come SecurityTransparent. Il codice SecurityTransparent non può chiamare tipi o membri identificati come SecurityCritical. Questa regola si applica sia alle applicazioni completamente attendibili che a quelle parzialmente attendibili. Per ulteriori informazioni, vedere Utilizzo di librerie di classi sicure e Codice SecurityTransparent.
Vedere anche
Concetti
Scrittura di codice indipendente dai tipi verificabile