AssemblySignatureKeyAttribute Класс

Определение

Обеспечивает миграцию с более старого, более простого ключа имени на более крупный ключ с более строгим алгоритмом хэширования.

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
Наследование
AssemblySignatureKeyAttribute
Атрибуты

Комментарии

Новый более крупный ключ — это ключ подписи. В версиях до .NET Framework 4.5 ключ подписи идентичен ключу удостоверения. Начиная с .NET Framework 4.5 атрибут AssemblySignatureKeyAttribute позволяет метаданным сборки продолжать работать старый маркер открытого ключа и двоичный большой объект (BLOB), чтобы существующие ссылки на сборки продолжали работать. Это также гарантирует, что сопоставление поступает от владельца ключа удостоверения.

Наличие атрибута не обязательно означает, что выполняется проверка строгого имени. В распространенных сценариях полного доверия атрибут никогда не учитывается, так как подписи строгого имени никогда не проверяются. Однако при проверке подписи строгого имени необходимо проверить как сигнатуру строгого имени, так и счетчика. Ключ удостоверения сборки не должен совпадать с ключом подписи (ключ, используемый для выполнения фактической подписи и проверки). Ключ удостоверения можно сопоставить с другим (более надежным) ключом подписи. Это позволяет задать удостоверение сборки и обновить ключи подписывания и алгоритмы для более безопасных версий.

Контрназначение устраняет проблемы безопасности, когда вредоносные сборки утверждают другое удостоверение. Например, вредоносная System.Core.dll сборка может содержать Microsoft открытый ключ в его метаданных и использовать атрибут для проверки строгого имени, чтобы использовать ключ подписи злоумышленника, если не присутствует счетчик. Таким образом, он может маскироваться как строго проверенная Microsoft сборка.

Сведения о том, как подписывать сборки для использования с этим новым атрибутом, см. в статье "Расширенное строгое именование".

Конструкторы

Имя Описание
AssemblySignatureKeyAttribute(String, String)

Создает новый экземпляр класса с помощью указанного открытого AssemblySignatureKeyAttribute ключа и счетчика.

Свойства

Имя Описание
Countersignature

Возвращает счетчик для строгого имени для этой сборки.

PublicKey

Возвращает открытый ключ для строгого имени, используемого для подписи сборки.

TypeId

При реализации в производном классе получает уникальный идентификатор для этого Attribute.

(Унаследовано от Attribute)

Методы

Имя Описание
Equals(Object)

Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

(Унаследовано от Attribute)
GetHashCode()

Возвращает хэш-код для этого экземпляра.

(Унаследовано от Attribute)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Извлекает сведения о типе объекта, который можно использовать для получения сведений о типе для интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к свойствам и методам, предоставляемым объектом.

(Унаследовано от Attribute)

Применяется к