Compartilhar via


AssemblySignatureKeyAttribute Classe

Definição

Fornece a migração de uma chave de nome forte mais antiga e mais simples para uma chave maior com um algoritmo de hash mais forte.

public ref class AssemblySignatureKeyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
public sealed class AssemblySignatureKeyAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)>]
type AssemblySignatureKeyAttribute = class
    inherit Attribute
Public NotInheritable Class AssemblySignatureKeyAttribute
Inherits Attribute
Herança
AssemblySignatureKeyAttribute
Atributos

Comentários

A nova chave maior é a chave de assinatura. Em versões anteriores ao .NET Framework 4.5, a chave de assinatura era idêntica à chave de identidade. A partir do .NET Framework 4.5, o AssemblySignatureKeyAttribute atributo permite que os metadados do assembly continuem a ter o token de chave pública antigo e o BLOB (objeto binário grande) para que as referências de assembly existentes continuem funcionando. Ele também garante que o mapeamento venha de um proprietário da chave de identidade.

A presença do atributo não significa necessariamente que a validação de nome forte ocorra. Em cenários comuns de confiança total, o atributo nunca é considerado, pois as assinaturas de nome forte nunca são validadas. No entanto, quando a assinatura de nome forte precisa ser validada, a assinatura de nome forte e a contra-atribuição devem ser validadas. A chave de identidade do assembly não precisa ser idêntica à chave de assinatura (a chave usada para fazer a assinatura e a validação reais). A chave de identidade pode ser mapeada para uma chave de assinatura diferente (mais robusta). Isso permite definir a identidade de um assembly e atualizar as chaves de assinatura e os algoritmos para versões mais seguras.

A contra-atribuição aborda as preocupações de segurança quando um assembly mal-intencionado reivindica alguma outra identidade. Por exemplo, um assembly de System.Core.dll mal-intencionado pode conter a chave pública da Microsoft em seus metadados e usar o atributo para informar a validação de nome forte para usar a chave de assinatura do invasor se nenhuma contraassinatura estiver presente. Assim, ele pode se disfarçar como um assembly da Microsoft com validação de nome forte.

Para obter informações sobre como assinar assemblies para uso com esse novo atributo, consulte Nomenclatura forte aprimorada.

Construtores

AssemblySignatureKeyAttribute(String, String)

Cria uma nova instância da classe AssemblySignatureKeyAttribute usando a chave pública especificada e a referenda.

Propriedades

Countersignature

Obtém a referenda do nome forte para esse assembly.

PublicKey

Obtém a chave pública do nome forte usado para assinar o assembly.

TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute.

(Herdado de Attribute)

Métodos

Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash para a instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a