AssemblySignatureKeyAttribute Klas

Definitie

Biedt migratie van een oudere, eenvoudigere sterke naamsleutel naar een grotere sleutel met een sterker hashing-algoritme.

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
Overname
AssemblySignatureKeyAttribute
Kenmerken

Opmerkingen

De nieuwe grotere sleutel is de handtekeningsleutel. In versies vóór het .NET Framework 4.5 was de handtekeningsleutel identiek aan de identiteitssleutel. Vanaf het .NET Framework 4.5 kan het kenmerk AssemblySignatureKeyAttribute de metagegevens van de assembly het oude openbare-sleuteltoken en het binaire grote object (BLOB) blijven gebruiken, zodat bestaande assemblyverwijzingen blijven werken. Het zorgt er ook voor dat de toewijzing afkomstig is van een eigenaar van de identiteitssleutel.

De aanwezigheid van het kenmerk betekent niet noodzakelijkerwijs dat er een sterke naamvalidatie plaatsvindt. In veelvoorkomende scenario's met volledig vertrouwen wordt het kenmerk nooit beschouwd, omdat handtekeningen met sterke namen nooit worden gevalideerd. Wanneer de sterke naamhandtekening echter moet worden gevalideerd, moeten zowel de sterke naamhandtekening als de tegentekening worden gevalideerd. De identiteitssleutel van de assembly hoeft niet identiek te zijn aan de handtekeningsleutel (de sleutel die wordt gebruikt om de werkelijke ondertekening en validatie uit te voeren). De identiteitssleutel kan worden toegewezen aan een andere (krachtigere) ondertekeningssleutel. Hiermee kunt u de identiteit van een assembly instellen en de ondertekeningssleutels en algoritmen bijwerken naar veiligere versies.

Met de tegentekening worden beveiligingsproblemen opgelost wanneer een kwaadwillende assembly een andere identiteit claimt. Een kwaadwillende System.Core.dll assembly kan bijvoorbeeld de Microsoft openbare sleutel in de metagegevens bevatten en het kenmerk gebruiken om sterke naamvalidatie te vertellen om de handtekeningsleutel van de aanvaller te gebruiken als er geen tegentekening aanwezig is. Het kan zich dus maskeren als een sterke naam-gevalideerde Microsoft assembly.

Zie Enhanced Strong Naming voor informatie over het ondertekenen van assembly's voor gebruik met dit nieuwe kenmerk.

Constructors

Name Description
AssemblySignatureKeyAttribute(String, String)

Hiermee maakt u een nieuw exemplaar van de AssemblySignatureKeyAttribute klasse met behulp van de opgegeven openbare sleutel en de aantekening.

Eigenschappen

Name Description
Countersignature

Hiermee haalt u de tegentekening op voor de sterke naam voor deze assembly.

PublicKey

Hiermee haalt u de openbare sleutel op voor de sterke naam die wordt gebruikt om de assembly te ondertekenen.

TypeId

Wanneer deze wordt geïmplementeerd in een afgeleide klasse, krijgt u Attributehiervoor een unieke id.

(Overgenomen van Attribute)

Methoden

Name Description
Equals(Object)

Retourneert een waarde die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
GetHashCode()

Retourneert de hash-code voor dit exemplaar.

(Overgenomen van Attribute)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsDefaultAttribute()

Wanneer deze wordt overschreven in een afgeleide klasse, geeft u aan of de waarde van dit exemplaar de standaardwaarde is voor de afgeleide klasse.

(Overgenomen van Attribute)
Match(Object)

Wanneer deze wordt overschreven in een afgeleide klasse, wordt een waarde geretourneerd die aangeeft of dit exemplaar gelijk is aan een opgegeven object.

(Overgenomen van Attribute)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

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

Hiermee wordt een set namen toegewezen aan een bijbehorende set verzend-id's.

(Overgenomen van Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Hiermee haalt u de typegegevens voor een object op, die kan worden gebruikt om de typegegevens voor een interface op te halen.

(Overgenomen van Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Hiermee wordt het aantal type-informatieinterfaces opgehaald dat een object biedt (0 of 1).

(Overgenomen van Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Biedt toegang tot eigenschappen en methoden die door een object worden weergegeven.

(Overgenomen van Attribute)

Van toepassing op