Condividi tramite


Nozioni fondamentali sulla protezione dall’accesso di codice

Aggiornamento: novembre 2007

È necessario che ogni applicazione basata su Common Language Runtime interagisca con il relativo sistema di protezione. L'applicazione viene valutata al momento dell'esecuzione e a tale applicazione viene concesso un set di autorizzazioni. A seconda delle autorizzazioni ricevute, l'applicazione viene eseguita correttamente o genera un'eccezione di protezione. Le autorizzazioni attribuite al codice verranno quindi determinate dalle impostazioni di protezione locali di un particolare computer. Dal momento che tali impostazioni possono variare da un computer all'altro, non è mai possibile avere la certezza che al codice creato vengano assegnate le autorizzazioni sufficienti per l'esecuzione, a differenza di quanto avviene negli scenari di sviluppo con codice non gestito, in cui non è necessario preoccuparsi delle autorizzazioni richieste per l'esecuzione del codice.

È necessario che i concetti attinenti alla protezione dall'accesso di codice illustrati di seguito siano familiari agli sviluppatori che desiderano scrivere buone applicazioni basate su Common Language Runtime:

  • Scrivere codice indipendente dai tipi: per consentire al codice di usufruire dei vantaggi della protezione dall'accesso di 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 protezione dell'ambiente di esecuzione viene ottenuta tramite chiamate di protezione 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. È possibile effettuare alcune chiamate solo in modo imperativo e altre solo in modo dichiarativo. Per alcune chiamate sono consentite entrambe le modalità. Per ulteriori informazioni, vedere Sintassi di protezione.

  • Richiedere le autorizzazioni per il codice: le richieste hanno effetto in ambito di assembly, in cui vengono elaborate le informazioni contenute nel codice e sono relative alle autorizzazioni necessarie all'esecuzione o, al contrario, non ritenute indispensabili e pertanto non richieste. Le richieste di protezione vengono valutate al momento del caricamento in memoria del codice. Le richieste non influiscono sull'ambiente di esecuzione: non è quindi possibile concedere al codice un numero di autorizzazioni maggiore a quello che verrebbe concesso in mancanza della richiesta. Le richieste tuttavia rappresentano il mezzo attraverso il quale l'ambiente di esecuzione riceve le informazioni relative alle autorizzazioni necessarie perché il codice possa essere eseguito. Per ulteriori informazioni, vedere Richiesta di autorizzazioni.

  • Utilizzare librerie di classi protette: le librerie di classi utilizzano la protezione dall'accesso di codice per specificare le autorizzazioni necessarie a garantirne l'accesso. È necessario conoscere esattamente le autorizzazioni necessarie per l'accesso a ognuna delle librerie utilizzate dal codice e includere nel codice le opportune richieste. Per ulteriori informazioni, vedere Utilizzo di librerie di classi protette.

Vedere anche

Concetti

Scrittura di codice indipendente dai tipi verificabile

Sintassi di sicurezza

Richiesta di autorizzazioni

Utilizzo di librerie di classi protette

Altre risorse

Protezione dall'accesso di codice