AssemblySignatureKeyAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit la migration d’une clé de nom fort plus ancienne et plus simple vers une clé plus grande avec un algorithme de hachage plus fort.
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
- Héritage
- Attributs
Remarques
La nouvelle clé plus grande est la clé de signature. Dans les versions antérieures au .NET Framework 4.5, la clé de signature était identique à la clé d’identité. À compter du .NET Framework 4.5, l’attribut AssemblySignatureKeyAttribute permet aux métadonnées d’assembly de continuer à avoir l’ancien jeton de clé publique et l’ancien objet blob (BLOB) afin que les références d’assembly existantes continuent de fonctionner. Il garantit également que le mappage provient d’un propriétaire de la clé d’identité.
La présence de l’attribut ne signifie pas nécessairement que la validation de nom fort a lieu. Dans les scénarios de confiance totale courants, l’attribut n’est jamais pris en compte, car les signatures de nom fort ne sont jamais validées. Toutefois, lorsque la signature de nom fort doit être validée, la signature de nom fort et la contre-signature doivent être validées. La clé d’identité de l’assembly n’a pas besoin d’être identique à la clé de signature (la clé utilisée pour effectuer la signature et la validation réelles). La clé d’identité peut être mappée à une autre clé de signature (plus robuste). Cela vous permet de définir l’identité d’un assembly et de mettre à jour les clés et algorithmes de signature pour des versions plus sécurisées.
La contre-signature résout les problèmes de sécurité lorsqu’un assembly malveillant prétend une autre identité. Par exemple, un assembly de System.Core.dll malveillant peut contenir la clé publique Microsoft dans ses métadonnées et utiliser l'attribut pour indiquer à la validation de nom fort d'utiliser la clé de signature de l'attaquant si aucune contre-signature n'est présente. Par conséquent, il peut se masquer comme un assembly Microsoft validé par un nom fort.
Pour plus d’informations sur la façon de signer des assemblys à utiliser avec ce nouvel attribut, consultez Amélioration du nommage fort.
Constructeurs
| Nom | Description |
|---|---|
| AssemblySignatureKeyAttribute(String, String) |
Crée une instance de la AssemblySignatureKeyAttribute classe à l’aide de la clé publique et de la contre-signature spécifiées. |
Propriétés
| Nom | Description |
|---|---|
| Countersignature |
Obtient la contre-signature du nom fort de cet assembly. |
| PublicKey |
Obtient la clé publique du nom fort utilisé pour signer l’assembly. |
| TypeId |
En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute. (Hérité de Attribute) |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| GetHashCode() |
Retourne le code de hachage pour cette instance. (Hérité de Attribute) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| IsDefaultAttribute() |
En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée. (Hérité de Attribute) |
| Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface. (Hérité de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l’accès aux propriétés et méthodes exposées par un objet. (Hérité de Attribute) |