Partilhar via


Cenário de nome forte

O cenário a seguir descreve o processo de assinar um assembly com um nome forte e posteriormente referencia-lo por esse nome.

  1. O assembly A é criado com um nome forte usando um dos métodos a seguir:

    • Usando um ambiente de desenvolvimento que ofereça suporte a criação de nomes de alta seguras, sistema autônomo Visual Studio 2005.

    • Criando um par de chaves de criptografia usando a ferramenta de Nome Forte (Sn.exe) e atribuindo esse par de chaves ao assembly usando um compilador de linha de comando ou o Assembly Linker (AL.exe).O Windows Software Development Kit (SDK) fornece sn.exe e Al.exe.

  2. O ambiente ou ferramenta de desenvolvimento assina o hash do arquivo que contém o manifesto do assembly com a chave particular do desenvolvedor.Esta assinatura digital é armazenada no arquivo PE que contém o manifesto do assembly A.

  3. O assembly B é um consumidor do conjunto a.A seção de referência de manifesto do conjunto B inclui um símbolo que representa a chave pública do assembly.Um token é uma parte da chave pública completa e é usado em vez da chave em si para economizar espaço.

  4. O Common Language Runtime verifica a assinatura de nome forte quando o assembly é colocado na cache global de assemblies.Ao ligar por nome forte em time de execução, o common linguagem tempo de execução compara a chave armazenada no manifesto do Assembly B com a chave usada para gerar o nome forte para o assembly a.Se a segurança do .NET estrutura verifica passagem e o vínculo for bem-sucedido, Assembly B tem uma garantia de que assembly do bits não foram violados e que esses bits realmente vêm de desenvolvedores do assembly a.

Observação:

Este cenário não aborda questões de confiança.Assemblies podem transportar completas assinaturas Authenticode da Microsoft juntamente com um nome forte.Assinaturas Authenticode incluem um certificado que estabelece confiança.É importante observar que os nomes fortes não exigem que o código esteja assinado dessa maneira.Na verdade, as chaves usadas para gerar a assinatura de nome forte não têm de ser necessariamente as mesmas chaves usadas para gerar uma assinatura Authenticode.

Ignorando a verificação de assinatura de assemblies confiáveis

Iniciando com o .NET Framework versão 3,5 Service Pack 1, assinaturas de nome forte não são validadas quando um conjunto é carregado em um domínio do aplicativo de confiança total, sistema autônomo o domínio do aplicativo padrão para o MyComputer zona. Isso é conhecido para sistema autônomo o nome de alta segurança-ignorar o recurso.Em um ambiente de confiança total, demandas de StrongNameIdentityPermission sempre será bem sucedida para assinado, assemblies de confiança total, independentemente de sua assinatura. O recurso de nome forte bypass evita a sobrecarga desnecessária de verificação de assinatura de nome forte de assemblies totalmente confiáveis nessa situação, permitindo que os assemblies carregar mais rapidamente.

O recurso de ignorar se aplica a qualquer conjunto que está assinado com um nome forte e que tem as seguintes características:

  • totalmente confiável sem StrongName evidência (por exemplo, possui MyComputer evidência de zona).

  • Carregado em um totalmente confiável AppDomain.

  • Carregado a partir de um local sob o ApplicationBase propriedade do que AppDomain.

  • Não-assinatura atrasada.

Esse recurso pode ser desabilitado para aplicativos individuais ou para um computador.Consulte Como: Desabilitar o recurso de anulação de nome forte.

Consulte também

Referência

Ferramenta Strong Name (Sn.exe)

Vinculador do conjunto (AL.exe) 

Outros recursos

Criando e usando Assemblies de Nome Forte