CA2210: Assemblies devem ter nomes de alta seguras válidos
TypeName |
AssembliesShouldHaveValidStrongNames |
CheckId |
CA2210 |
<strong>Categoria</strong> |
Microsoft.design |
Alteração significativa |
Não separável |
Causa
Um assembly não está assinado com um nome forte, o nome forte não pôde ser verificado ou o nome forte não seria válido sem as configurações do registro atual do computador.
Descrição da regra
Esta regra recupera e verifica o nome forte de um assembly. Ocorre uma violação se qualquer uma das seguintes condições forem verdadeiras:
O assembly não tem um nome forte.
O assembly foi alterado depois da assinatura.
O assembly é assinado por atraso.
O assembly foi assinado incorretamente ou falha ao entrar.
O assembly requer configurações do registro para passar pela verificação. Por exemplo, a ferramenta Strong Name (sn. exe) foi usada para ignorar a verificação do assembly.
O nome forte protege clientes de inadvertidamente carregar um assembly que foi violado. Os assemblies sem nomes de alta segurança não devem ser implantados fora cenários muito limitados. Se você compartilhar ou distribuir assemblies não assinados corretamente, o assembly pode ser violado, o common language runtime não pode carregar o assembly ou o usuário pode ter que desativar a verificação no seu computador. Um conjunto sem um nome forte tem-se de que as seguintes desvantagens:
Suas origens não podem ser verificadas.
O common language runtime não é possível avisar os usuários se o conteúdo do assembly ter sido alterado.
Ele não pode ser carregado no cache global de assemblies.
Observe que para carregar e analisar um assembly com assinatura atrasada, você deve desativar a verificação do assembly.
Como corrigir violações
Para criar um arquivo de chave
Use um dos seguintes procedimentos:
Use a ferramenta de vinculador do Assembly (Al.exe) fornecida pelo .NET Framework SDK.
Para o .NET Framework versão 1.0 ou 1.1, use o System.Reflection.AssemblyKeyFileAttribute ou System.Reflection.AssemblyKeyNameAttribute atributo.
Para o .NET Framework 2.0, use o /keyfile ou /keycontainer opção de compilador / KEYFILE (especificar a chave ou par de chaves para assinar um Assembly) ou / KEYCONTAINER (Especifica um contêiner de chave para assinar um Assembly) a opção de vinculador em C++).
Para assinar seu assembly com um nome forte no Visual Studio
Em Visual Studio, abra a solução.
Em Solution Explorer, seu projeto com o botão direito e, em seguida, clique em Propriedades.
Clique o Signing e selecione o Sign the assembly caixa de seleção.
De Choose a strong name key file, selecione nova.
O Create Strong Name Key janela será exibida.
Em nome do arquivo de chave, digite um nome para a sua chave de nome forte.
Escolha se deseja proteger a chave com uma senha e clique em OK.
Em Solution Explorer, seu projeto com o botão direito e, em seguida, clique em Build.
Para assinar seu assembly com um nome forte fora de Visual Studio
- Use a ferramenta strong name (sn. exe) fornecido pelo .NET Framework SDK. Para obter mais informações, consulte Sn. exe (ferramenta de nome forte).
Quando suprimir avisos
Suprimir somente um aviso de que essa regra se o assembly for usado em um ambiente onde violem o conteúdo não é uma preocupação.
Consulte também
Tarefas
Como: Assinar um Assembly com um nome forte
Referência
Sn. exe (ferramenta de nome forte)