Determinar as permissões concedidas
Importante |
---|
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:
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.
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.
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.
As uniões de tempo de execução o resultado da etapa 3, com o mínimo de permissões solicitada.
Finalmente, o runtime subtrai quaisquer permissões que são recusadas do resultado da etapa 4.