Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Compatibilidade de políticas de segurança de acesso de código e migração

.NET Framework (current version)
 

System_CAPS_cautionCuidado

Segurança de Acesso do Código e Código Parcialmente Confiável

O .NET Framework fornece um mecanismo para a imposição de níveis variáveis de confiança em códigos diferentes em execução no mesmo aplicativo chamado CAS (Segurança de Acesso do Código).  O CAS no .NET Framework não deve ser usado como um mecanismo de imposição de limites de segurança com base na origem do código ou em outros aspectos da identidade. Estamos atualizando nossas diretrizes para refletir que o CAS e o Código Transparente de Segurança não terão suporte como um limite de segurança com código parcialmente confiável, especialmente o código de origem desconhecida. Não aconselhamos carregar e executar códigos de origens desconhecidas sem a adoção de medidas de segurança alternativas no local.

Essa política é aplicável à todas as versões do .NET Framework, mas não é aplicável ao .NET Framework incluído no Silverlight.

A parte da política de segurança de acesso do código (CAS) se tornou obsoleta no .NET Framework 4. Como resultado, você pode encontrar avisos de compilação e exceções de tempo de execução se você chamar os tipos de política obsoletos e membros explicitamente ou implicitamente (por meio de outros tipos e membros). 

Você pode evitar os avisos e erros ao:

Este tópico contém as seguintes seções:

Carregamento de assembly várias sobrecargas produzir erros devido a seu uso implícito da diretiva de CAS. Essas sobrecargas usam um Evidence parâmetro que é usado para resolver a diretiva CAS e fornecer uma permissão de conceder o conjunto para um assembly.

Aqui estão alguns exemplos. As sobrecargas obsoletas são aquelas que levam Evidence como um parâmetro:

Os tipos e membros obsoletos geram as seguintes mensagens de erro quando eles são usados. Observe que o System.Security.Policy.Evidence próprio tipo não é obsoleto.

Aviso de tempo de compilação:

warning CS0618: '<API Name>' is obsolete: 'This method is obsolete and will be removed in a future release of the .NET Framework. Please use <suggested alternate API>. See <link> for more information.'

Exceção de tempo de execução:

NotSupportedException: This method uses CAS policy, which has been obsoleted by the .NET Framework. In order to enable CAS policy for compatibility reasons, please use the <NetFx40_LegacySecurityPolicy> configuration switch. Please see <link> for more information.

Diretiva CAS geralmente é usada para determinar um assembly ou conceder o conjunto de permissão do domínio de aplicativo ou nível de confiança. O .NET Framework 4 expõe as seguintes propriedades úteis que não é necessário para resolver a política de segurança:

O AppDomain.SetAppDomainPolicy método é normalmente usado para modo seguro os assemblies em um domínio de aplicativo. O .NET Framework 4 apresenta membros que não precisa usar PolicyLevel para essa finalidade. Para obter mais informações, consulte Como executar código parcialmente confiável em uma área restrita.

Hosts geralmente precisam determinar as permissões apropriadas para o código de modo seguro hospedado. Antes do .NET Framework 4, diretiva de CAS fornece uma forma de fazer isso com o SecurityManager.ResolvePolicy método. Como uma substituição, .NET Framework 4 fornece o SecurityManager.GetStandardSandbox método, que retorna uma permissão de segurança, padrão definido para a evidência fornecida.

O motivo para usar uma sobrecarga de carregamento de assembly pode ser usar parâmetros que não estão disponíveis, em vez do assembly de modo seguro. Começando com o .NET Framework 4, sobrecargas de carregamento de assembly que não exigem uma System.Security.Policy.Evidence objeto como um parâmetro, por exemplo, AppDomain.ExecuteAssembly(String, String[], Byte[], AssemblyHashAlgorithm), habilitar este cenário.

Se você quiser sandbox um assembly, use o AppDomain.CreateDomain(String, Evidence, AppDomainSetup, PermissionSet, StrongName[]) de sobrecarga.

O < NetFx40_LegacySecurityPolicy > elemento de configuração permite que você especifique que um processo ou a biblioteca usa política CAS herdada. Quando você habilita esse elemento, as sobrecargas de diretiva e a evidência funcionará como nas versões anteriores do framework.

System_CAPS_noteObservação

Comportamento da diretiva de CAS é especificado em uma base de versão de tempo de execução, para que modificar a diretiva de CAS para uma versão de tempo de execução não afeta a diretiva de CAS da outra versão.

<configuration>
   <runtime>
      <NetFx40_LegacySecurityPolicy enabled="true"/>
   </runtime>
</configuration>
Mostrar: