Como: Desativar o recurso de bypass de nome forte
A partir do .NET Framework versão 3.5 Service Pack 1 (SP1), as assinaturas de nome forte não são validadas quando um assembly é carregado em um objeto de confiança AppDomain total, como o padrão AppDomain para a MyComputer
zona. Isso é conhecido como o recurso de bypass de nome forte. Em um ambiente de confiança total, as demandas por StrongNameIdentityPermission assemblies assinados e de confiança total são sempre bem-sucedidas, independentemente de sua assinatura. A única restrição é que o assembly deve ser totalmente confiável porque sua zona é totalmente confiável. Como o nome forte não é um fator determinante nessas condições, não há razão para que ele seja validado. Ignorar a validação de assinaturas de nome forte fornece melhorias significativas de desempenho.
O recurso de bypass aplica-se a qualquer assembly de confiança total que não seja assinado com atraso e que seja carregado em qualquer confiança AppDomain total a partir do diretório especificado por sua ApplicationBase propriedade.
Você pode substituir o recurso de bypass para todos os aplicativos em um computador definindo um valor de chave do Registro. Você pode substituir a configuração de um único aplicativo usando um arquivo de configuração do aplicativo. Não é possível restabelecer o recurso de bypass para um único aplicativo se ele tiver sido desabilitado pela chave do Registro.
Quando você substitui o recurso de bypass, o nome forte é validado apenas para correção; não é verificado para um StrongNameIdentityPermission. Se você quiser confirmar um nome forte específico, você tem que executar essa verificação separadamente.
Importante
A capacidade de forçar a validação de nome forte depende de uma chave do Registro, conforme descrito no procedimento a seguir. Se um aplicativo estiver sendo executado em uma conta que não tenha permissão de lista de controle de acesso (ACL) para acessar essa chave do Registro, a configuração será ineficaz. Você deve garantir que os direitos de ACL estejam configurados para essa chave para que ela possa ser lida para todos os assemblies.
Desative o recurso de bypass de nome forte para todos os aplicativos
Em computadores de 32 bits, no registro do sistema, crie uma entrada DWORD com um valor de 0 nomeado
AllowStrongNameBypass
sob o HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. Chave NETFramework.Em computadores de 64 bits, no registro do sistema, crie uma entrada DWORD com um valor de 0 nomeado
AllowStrongNameBypass
sob o HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework e HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\. NETFramework chaves.
Desabilitar o recurso de desvio de nome forte para um único aplicativo
Abra ou crie o arquivo de configuração do aplicativo.
Para obter mais informações sobre esse arquivo, consulte a seção Arquivos de configuração do aplicativo em Configurar aplicativos.
Adicione a seguinte entrada:
<configuration> <runtime> <bypassTrustedAppStrongNames enabled="false" /> </runtime> </configuration>
Você pode restaurar o recurso de bypass para o aplicativo removendo a configuração do arquivo de configuração ou definindo o atributo como true
.
Nota
Você pode ativar e desativar a validação de nome forte para um aplicativo somente se o recurso de bypass estiver habilitado para o computador. Se o recurso de bypass tiver sido desativado para o computador, nomes fortes serão validados para todos os aplicativos e você não poderá ignorar a validação para um único aplicativo.