Partilhar via


Hosts do domínio de aplicativo

Observação importanteImportante

No .NET Framework versão 4, o common language runtime (CLR) está se afastando fornecendo a diretiva de segurança de computadores.Microsoft recomenda o uso de diretivas de restrição de Software do Windows como um substituto para a diretiva de segurança do CLR.As informações neste tópico se aplica à.NET Framework versão 3.5 e anterior; não se aplica à versão 4.0 e posterior.Para obter mais informações sobre esta e outras alterações, consulte Alterações de segurança na.NET Framework 4.

Cada.NET Framework executa em um domínio de aplicativo sob o controle de um host que cria o domínio de aplicativo e carrega os assemblies nele. O host tem acesso a informações sobre o código (evidências), como, por exemplo, a zona na qual o código é gerado ou as assinaturas digitais dos assemblies no domínio do aplicativo. Um host confiável é um host que tenha permissão para fornecer o common language runtime com esse tipo de informação. O System.AppDomain classe fornece a funcionalidade de domínio do aplicativo usada pelos hosts.

A tabela a seguir mostra os tipos de hosts de aplicativos.

Host de domínio de aplicativo

Descrição

Host de navegador (por exemplo, o Microsoft Internet Explorer)

Executa o código dentro do contexto de um site da Web.

Hosts personalizados

Cria domínios e carrega os assemblies para domínios, incluindo assemblies dinâmicos. Podem ser gravados no código gerenciado ou não gerenciado.

Host de servidor (por exemplo, o ASP.NET)

Executa o código que manipula solicitações enviadas a um servidor.

Host de shell

Inicia os aplicativos (arquivos. exe) do shell.

Depois de criar um novo domínio de aplicativo, um host pode especificar a diretiva seja aplicada ao código dentro do domínio de aplicativo. Essa diretiva está sempre sujeito à diretiva de empresa, máquina e usuário. Um host pode reduzir o conjunto de permissões que a diretiva de máquina e usuário permite mas não é possível expandi-la. Diretiva pode ser definida apenas uma vez para um domínio de aplicativo. Para definir a diretiva de domínio de aplicativo, o host deve ser concedido a permissão de segurança (fornecido por meio de SecurityPermission classe) para controlar a diretiva de domínio.

Após a diretiva de domínio de aplicativo é definida, todos os assemblies carregados subseqüentemente são concedidos permissões sob a nova diretiva (empresa, máquina, usuário e diretiva de domínio de aplicativo). Anteriormente, assemblies carregados obtém concessões de permissão sob a diretiva pré-existente (somente a diretiva corporativa, máquina e usuário). As permissões concedidas a esses assemblies não são reavaliadas em nova diretiva de domínio de aplicativo.

Um host confiável pode fornecer informações (provas) para o runtime sobre assemblies são carregados para o domínio do aplicativo. Se um host de domínio não tiver o apropriado SecurityPermission para controlar a evidência, o runtime usa a segurança aplicada no host para determinar a segurança para aplicar no assembly.

Em algumas situações, a evidência que normalmente seria fornecida por um host de domínio de aplicativo confiável realmente é fornecida pelo carregador do. Normalmente, após a criação de um domínio de aplicativo, o host de domínio de aplicativo carrega o primeiro conjunto (principal) no domínio de aplicativo e chamadas para começar a execução desse assembly. Quando o código no primeiro conjunto faz referência a outro conjunto de código, o carregador resolve a referência, carrega o assembly apropriado para o domínio do aplicativo e fornece as evidências sobre o assembly para o tempo de execução. Nessa situação, o host de domínio de aplicativo confiável fornecido a evidência do assembly original não fornecem provas para assemblies carregados subseqüentemente.

Consulte também

Referência

System.AppDomain

Outros recursos

Gerenciamento de política de segurança