Поделиться через


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 может содержать открытый ключ Майкрософт в метаданных и использовать атрибут для проверки строгого имени, чтобы использовать ключ подписи злоумышленника, если не существует контригнатуры. Таким образом, он может маскироваться под сборку Майкрософт, проверенную строгим именем.

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

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

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)

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