Autorizzazioni per l'accesso di codice e protezione in .NET Framework con Visual Basic
Aggiornamento: novembre 2007
In .NET Framework, la protezione dell'accesso al codice limita l'accesso alle risorse e alle operazioni protette. È 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 controllate 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, Per ulteriori informazioni, vedere Nozioni fondamentali sulla protezione dall’accesso di codice.
Autorizzazioni di accesso al codice
Gli oggetti relativi alle autorizzazioni di accesso al codice sono utilizzati per proteggere risorse e operazioni da utenti non autorizzati. Rappresentano una parte fondamentale del meccanismo di Common Language Runtime volto ad applicare le restrizioni di protezione sul codice gestito.
Le autorizzazioni di accesso al codice consentono all'utente di accedere a una risorsa protetta, ad esempio un file, oppure di eseguire un'azione protetta, quale l'accesso al codice gestito. Tutte le autorizzazioni di accesso al codice possono essere richieste dal codice mentre l'eventuale concessione è determinata dal runtime. Ogni autorizzazione di accesso al codice deriva dalla classe CodeAccessPermission e pertanto le autorizzazioni hanno metodi comuni: Assert, Demand, Deny, PermitOnly, IsSubSetOf, Intersect e Union.
Autorizzazioni fornite da .NET Framework
Nella tabella sono illustrate le autorizzazioni di accesso al codice fornite da .NET Framework.
Classe autorizzazione |
Operazioni consentite |
---|---|
Accesso alle risorse in ambienti host ASP.NET. |
|
Accesso alle classi System.DirectoryServices. |
|
Accesso ai server DNS (Domain Name System) in una rete. |
|
Lettura o scrittura in variabili di ambiente. |
|
Lettura o scrittura nei servizi del log eventi. |
|
Lettura o scrittura in file mediante una finestra di dialogo Apri. |
|
Lettura o scrittura in file o directory. |
|
Lettura o scrittura in file o directory nell'archiviazione isolata. |
|
Accesso a code di messaggi mediante le interfacce gestite di Message Queuing (detto anche MSMQ). |
|
Accesso alle origini dati ODBC (Open Database Connectivity). |
|
Accesso a database tramite OLE DB. |
|
Accesso a database di Oracle. |
|
Accesso a contatori delle prestazioni. |
|
Accesso alle stampanti. |
|
Determinazione delle informazioni su un tipo in fase di esecuzione. |
|
Lettura, scrittura, creazione o eliminazione di chiavi e valori del Registro di sistema. |
|
Esecuzione, asserzione di autorizzazioni, chiamata nel codice non gestito, omissione della verifica e altri diritti correlati alla protezione. |
|
Accesso a servizi in esecuzione o inattivi. |
|
Creazione o accettazione di connessioni su un indirizzo di trasporto. |
|
Accesso a database di SQL. |
|
Accesso alle funzionalità dell'interfaccia utente. |
|
Creazione o accettazione di connessioni su un indirizzo Web. |
Creazione di autorizzazioni personalizzate
In .NET Framework viene fornito un insieme di classi di autorizzazioni per l'accesso al codice progettate per proteggere un gruppo specifico di risorse e operazioni, sulla base delle risorse esposte da .NET Framework. Le autorizzazioni di accesso al codice incorporate sono adatte alla maggior parte degli ambienti operativi. In alcune situazioni tuttavia potrebbe essere consigliabile definire una classe personalizzata di autorizzazioni per l'accesso al codice. Per ulteriori informazioni, vedere Creazione di autorizzazioni personalizzate di accesso al codice.
Permessi di identità
I permessi di identità rappresentano caratteristiche che identificano un assembly. Common Language Runtime concede autorizzazioni di identità a un assembly se caricato, sulla base delle informazioni ottenute su di esso. Per ulteriori informazioni, vedere Permessi di identità.
Autorizzazioni basate sui ruoli
Le applicazioni aziendali offrono spesso un accesso a dati o risorse basato su credenziali fornite dall'utente. Queste applicazioni controllano in genere il ruolo di un utente e consentono l'accesso alle risorse sulla base di tale ruolo. Common Language Runtime fornisce il supporto dell'autorizzazione basata sui ruoli tramite account Windows o identità personalizzate. Per ulteriori informazioni, vedere Sicurezza basata sui ruoli.
Attività di protezione
Nella tabella riportata di seguito sono elencate le attività associate alle autorizzazioni e alla protezione.
Per |
Vedere |
---|---|
Richiedere l'autorizzazione per l'accesso al codice non gestito |
Procedura: richiedere l'autorizzazione di accesso a codice non gestito |
Richiedere le autorizzazioni opzionali |
Procedura: richiedere le autorizzazioni facoltative tramite il flag RequestOptional |
Richiedere l'autorizzazione per un set di autorizzazioni denominato |
Procedura: richiedere l'autorizzazione per un set di autorizzazioni denominato |
Richiedere le autorizzazioni codificate in XML |
|
Rifiutare le autorizzazioni |
Procedura: rifiutare le autorizzazioni mediante il flag RequestRefuse |
Eseguire un controllo di protezione imperativo |
|
Eseguire un controllo di protezione dichiarativo |
|
Eseguire l'override di un controllo di protezione |
|
Condividere una libreria con codice parzialmente attendibile |
Condivisione di una libreria con codice parzialmente attendibile |
Richiedere l'attendibilità completa per i tipi all'interno dell'assembly AllowPartiallyTrustedCallersAttribute |
|
Creare gli oggetti WindowsIdentity e WindowsPrincipal |
|
Creare gli oggetti GenericPrincipal e GenericIdentity |
Procedura: creare oggetti GenericPrincipal e GenericIdentity |
Modello dei criteri di protezione di .NET Framework
Il modello dei criteri di protezione di .NET Framework è composto dai cinque elementi riportati di seguito.
Livelli dei criteri di protezione: azienda, computer, utente e dominio applicazione.
Gruppi di codice esistenti come gerarchia interna ai livelli di criteri relativi all'azienda, al computer e all'utente.
Set di autorizzazioni denominati associati a ciascun gruppo di codice.
Prova che fornisce informazioni sull'identità del codice.
Host di domini applicazione, che forniscono a Common Language Runtime la prova relativa al codice.
Livelli dei criteri di protezione
In .NET Framework vengono forniti quattro livelli di criteri di protezione che consentono di calcolare le autorizzazioni concesse a un assembly o a un dominio applicazione. Ogni livello contiene la propria gerarchia di gruppi di codice e di set di autorizzazioni. Il runtime calcola il set di autorizzazioni consentito come somma delle autorizzazioni consentite da tutti i livelli partecipanti nei criteri
Di seguito sono descritti i livelli disponibili.
Criteri aziendali. Vengono applicati a tutto il codice gestito in uno scenario aziendale, in presenza della distribuzione di un file di configurazione aziendale.
Criteri a livello di computer. Vengono applicati a tutto il codice gestito presente nel computer.
Criteri a livello di utente. Vengono applicati al codice presente in tutti i processi associati all'utente corrente del sistema operativo all'avvio di Common Language Runtime.
Criteri a livello di dominio applicazione. Vengono applicati al codice gestito presente nel dominio applicazione dell'host.
Per ulteriori informazioni, vedere Livelli dei criteri di protezione.
Gruppi di codice
Un gruppo di codice è un raggruppamento logico di codice la cui appartenenza è soggetta a una specifica condizione. Ogni codice che soddisfa la condizione di appartenenza è incluso nel gruppo. Ai gruppi di codice sono associati set di autorizzazioni che vengono valutati durante una concessione di criteri. Per ulteriori informazioni, vedere Gruppi di codice.
Set di autorizzazioni denominati
Un set di autorizzazioni denominato è un set di autorizzazioni che gli amministratori possono associare a un gruppo di codice. Esso consiste almeno di un'autorizzazione e di un nome e di una descrizione per il set stesso. A un determinato set di autorizzazioni possono essere associati più gruppi di codice.
Nella tabella sono illustrati i set di autorizzazioni denominati forniti da Common Language Runtime.
Nome |
Descrizione |
---|---|
Nothing |
Nessuna autorizzazione. Il codice non può essere eseguito. |
Execution |
Autorizzazione all'esecuzione, ma non all'utilizzo di risorse protette. |
Internet |
Set di autorizzazioni di criteri predefinito adatto a contenuto di origine sconosciuta. |
Local Intranet |
Set di autorizzazioni di criteri predefinito all'interno di un'azienda. |
Everything |
Tutte le autorizzazioni standard (incorporate), tranne l'autorizzazione a ignorare la verifica. |
FullTrust |
Accesso completo a tutte le risorse. |
Per ulteriori informazioni, vedere Set di autorizzazioni denominati.
Evidenza
L'evidenza costituisce le informazioni che Common Language Runtime utilizza per effettuare decisioni sulla base dei criteri di protezione. La prova indica al runtime che il codice presenta una particolare caratteristica e può includere la directory dell'applicazione, l'editore, il sito e l'URL. Per ulteriori informazioni, vedere Evidenza.
Host di domini applicazione
Ogni applicazione .NET Framework viene eseguita in un dominio applicazione sotto il controllo di un host che crea il dominio applicazione e ne carica all'interno gli assembly. I domini applicazione possono includere:
Host browser. Eseguire il codice all'interno del contesto di un sito Web.
Host progettati in modo personalizzato. Creare domini e caricare assembly, compresi gli assembly dinamici, nei domini.
Host server. Eseguire il codice che gestisce le richieste inviate a un server.
Host della shell. Avviare applicazioni (file EXE) dalla shell.
Nella tabella sono elencate le attività relative ai domini applicazione:
Per |
Vedere |
---|---|
Creare un dominio applicazione |
|
Impostare i criteri di protezione a livello di dominio applicazione |
Impostazione dei criteri di protezione a livello di dominio applicazione |
Configurare un dominio applicazione |
|
Chiamare le funzioni in un determinato dominio applicazione |
|
Recuperare le informazioni di installazione da un dominio applicazione |
Recupero di informazioni di installazione da un dominio applicazione |
Scaricare un dominio applicazione |
Per ulteriori informazioni, vedere AppDomain, Host di domini applicazione e Programmazione con i domini applicazione.
Vedere anche
Attività
Risoluzione dei problemi relativi alle eccezioni di protezione dall'accesso di codice
Concetti
Isolamento in base all'utente, al dominio e all'assembly