Condividi tramite


AssemblySignatureKeyAttribute Classe

Definizione

Fornisce la migrazione da una precedente chiave con nome sicuro più semplice a una chiave più grande con un algoritmo hash più complesso.

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
Ereditarietà
AssemblySignatureKeyAttribute
Attributi

Commenti

La nuova chiave più grande è la chiave della firma. Nelle versioni precedenti a .NET Framework 4.5 la chiave di firma è identica alla chiave di identità. A partire da .NET Framework 4.5, l'attributo consente ai metadati dell'assembly AssemblySignatureKeyAttribute di continuare ad avere il token di chiave pubblica precedente e l'oggetto BLOB (Binary Large Object) in modo che i riferimenti all'assembly esistenti continuino a funzionare. Garantisce inoltre che il mapping provenga da un proprietario della chiave di identità.

La presenza dell'attributo non significa necessariamente che venga eseguita la convalida del nome sicuro. Negli scenari comuni di attendibilità completa, l'attributo non viene mai considerato, perché le firme con nome sicuro non vengono mai convalidate. Tuttavia, quando la firma con nome sicuro deve essere convalidata, è necessario convalidare sia la firma con nome sicuro che la controfirma. La chiave di identità dell'assembly non deve essere identica alla chiave di firma (la chiave usata per eseguire la firma e la convalida effettive). È possibile eseguire il mapping della chiave di identità a una chiave di firma diversa (più affidabile). In questo modo è possibile impostare l'identità di un assembly e aggiornare le chiavi e gli algoritmi di firma a versioni più sicure.

La controfirma risolve i problemi di sicurezza quando un assembly dannoso richiede un'altra identità. Ad esempio, un assembly di System.Core.dll dannoso potrebbe contenere la chiave pubblica Microsoft nei relativi metadati e usare l'attributo per indicare la convalida del nome sicuro per usare la chiave di firma dell'utente malintenzionato se non è presente alcuna controfirma. Pertanto, potrebbe mascherare come un assembly Microsoft convalidato con nome sicuro.

Per informazioni su come firmare gli assembly da usare con questo nuovo attributo, vedere Enhanced Strong Naming.For information about how to sign assemblies for use with this new attribute, see Enhanced Strong Naming.

Costruttori

AssemblySignatureKeyAttribute(String, String)

Crea una nuova istanza della classe AssemblySignatureKeyAttribute utilizzando la chiave pubblica specificata e la controfirma.

Proprietà

Countersignature

Ottiene la controfirma per il nome sicuro per questo assembly.

PublicKey

Ottiene la chiave pubblica per il nome sicuro utilizzato per firmare l'assembly.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato.

(Ereditato da Attribute)
GetHashCode()

Restituisce il codice hash per l'istanza.

(Ereditato da Attribute)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata.

(Ereditato da Attribute)
Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a