Share via


Determinar as permissões concedidas

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.

Para os domínios de aplicativo, o conjunto de permissão concedida é simplesmente o conjunto de permissão.

Para módulos (assemblies), o common language runtime considera outros fatores em tempo de carregamento de assembly para determinar o conjunto de permissão concedida. Um assembly pode conter solicitações de segurança declarativa que especificam as permissões que o código precisa ou deseja ter. A tabela a seguir descreve os conjuntos de permissão que pode solicitar o código.

Conjunto de permissões

Descrição

Necessário

Especifica o conjunto mínimo de permissões que o código deve ter para executar.

Optional

Identifica o código quer ter, além do mínimo definir de permissões. Isso faz com que todas as permissões não identificadas no conjunto mínimo ou conjunto opcional implicitamente ser recusada.

Recusada

Especifica as permissões que nunca devem ser concedidas ao código.

Se todas as solicitações de permissão de três estiverem ausentes, o assembly simplesmente é concedido que a permissão definida de diretiva permite. No entanto, se pelo menos um dos três solicitações de permissão estiver presente, o runtime considera as permissões solicitadas usando o seguinte processo:

  1. O tempo de execução calcula as permissões concedidas para o assembly e assegura que o assembly tem permissão para executar. Se a permissão de execução não estiver presente, o runtime lança um PolicyException e o código não é permitido a execução.

  2. O tempo de execução determina se o conjunto de permissões necessárias é um subconjunto do conjunto de permissão. Se não, o runtime lança um PolicyException e o código não é permitido a execução.

  3. O runtime intercepta as permissões solicitadas opcionais com o conjunto de permissão. Se permissões opcionais não são solicitadas, então o PermissionSet opcional será considerado FullTrust.

  4. As uniões de tempo de execução o resultado da etapa 3, com o mínimo de permissões solicitada.

  5. Finalmente, o runtime subtrai quaisquer permissões que são recusadas do resultado da etapa 4.

Consulte também

Referência

PolicyException

Outros recursos

Gerenciamento de política de segurança