Host di domini applicazione
Aggiornamento: novembre 2007
Ogni applicazione .NET viene eseguita in un dominio applicazione sotto il controllo di un host che crea il dominio stesso e vi carica gli assembly. L'host ha accesso alle informazioni relative al codice, denominate evidenza, quali l'area di origine del codice o le firme digitali degli assembly appartenenti al dominio applicazione. Un host attendibile è un host che dispone dell'autorizzazione per fornire a Common Language Runtime questo tipo di informazioni. La classe System.AppDomain fornisce la funzionalità di dominio applicazione utilizzata dagli host.
Nella tabella che segue sono illustrati i tipi di host di domini applicazioni.
Host di domini applicazione |
Descrizione |
---|---|
Host browser (ad esempio, Microsoft Internet Explorer) |
Esegue codice all'interno del contesto di un sito Web. |
Host progettati in modo personalizzato |
Consentono di creare domini e di caricare assembly, compresi gli assembly dinamici, nei domini. Possono essere scritti sia in codice gestito che in codice non gestito. |
Host del server (ad esempio, ASP.NET) |
Esegue codice che gestisce le richieste inviate a un server. |
Host della shell |
Avvia applicazioni (file EXE) dalla shell. |
Una volta creato un nuovo dominio applicazione, un host è in grado di specificare i criteri da applicare al codice all'interno del dominio applicazione. Tali criteri sono sempre soggetti ai criteri a livello aziendale, a livello di computer e a livello di utente. Un host può ridurre il set di autorizzazioni consentite dai criteri a livello di computer e di utente, ma non può espanderlo. Per un dominio applicazione, i criteri possono essere impostati una volta sola. Per impostare i criteri del dominio applicazione, è necessario che l'host disponga dell'autorizzazione di sicurezza per il controllo dei criteri di dominio, fornita dalla classe SecurityPermission.
Dopo che i criteri del dominio applicazione sono stati impostati, a tutti gli assembly successivamente caricati vengono concesse le autorizzazioni previste dai nuovi criteri a livello di azienda, di computer, di utente o di dominio applicazione. Gli assembly caricati precedentemente ottengono concessioni di autorizzazioni in base ai criteri preesistenti: si tratta solo dei criteri a livello di azienda, di computer e di utente. Le autorizzazioni concesse a questi assembly non vengono sottoposte a nuova valutazione in base ai nuovi criteri del dominio applicazione.
Un host attendibile può fornire all'ambiente di esecuzione informazioni (evidenza) relative agli assembly caricati nel dominio applicazione. Se un host di domini non dispone dell'adeguata autorizzazione SecurityPermission per il controllo dell'evidenza, verrà utilizzata la protezione applicata all'host per determinare quella da applicare all'assembly.
In alcune situazioni, l'evidenza che sarebbe normalmente fornita da un host di domini applicazione attendibile viene in realtà fornita dal caricatore. Una volta che un dominio applicazione è stato creato, solitamente l'host del dominio applicazione vi carica all'interno il primo assembly (l'assembly principale) e lo chiama per avviare l'esecuzione. Quando codice contenuto nel primo assembly fa riferimento a codice in un altro assembly, il caricatore risolve il riferimento, carica l'assembly opportuno nel dominio applicazione e fornisce l'evidenza relativa a tale assembly in fase di esecuzione. In questa situazione, l'host del dominio applicazione attendibile fornisce l'evidenza solo per l'assembly originale, non per gli assembly successivamente caricati.