AssemblySignatureKeyAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona la migración de una clave de nombre seguro anterior más sencilla a una clave más grande con un algoritmo hash más seguro.
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
- Herencia
- Atributos
Comentarios
La nueva clave más grande es la clave de firma. En versiones anteriores a .NET Framework 4.5, la clave de firma era idéntica a la clave de identidad. A partir de .NET Framework 4.5, el AssemblySignatureKeyAttribute atributo permite que los metadatos del ensamblado sigan teniendo el antiguo token de clave pública y el objeto binario grande (BLOB) para que las referencias de ensamblado existentes sigan funcionando. También garantiza que la asignación provenga de un propietario de la clave de identidad.
La presencia del atributo no significa necesariamente que se produzca la validación de nombres seguros. En escenarios comunes de plena confianza, el atributo nunca se tiene en cuenta, ya que las firmas de nombre seguro nunca se validan. Sin embargo, cuando es necesario validar la firma de nombre seguro, se deben validar tanto la firma de nombre seguro como la contrafirma. La clave de identidad del ensamblado no tiene que ser idéntica a la clave de firma (la clave usada para realizar la firma y validación reales). La clave de identidad se puede asignar a una clave de firma diferente (más sólida). Esto le permite establecer la identidad de un ensamblado y actualizar las claves y algoritmos de firma a versiones más seguras.
La contrafirma aborda los problemas de seguridad cuando un ensamblado malintencionado reclama alguna otra identidad. Por ejemplo, un ensamblado de System.Core.dll malintencionado podría contener la clave pública de Microsoft en sus metadatos y usar el atributo para indicar a la validación de nombres seguros que use la clave de firma del atacante si no existe ninguna contrafirma. Por lo tanto, podría enmascararse como un ensamblado de Microsoft validado por nombre seguro.
Para obtener información sobre cómo firmar ensamblados para su uso con este nuevo atributo, vea Enhanced Strong Naming.
Constructores
AssemblySignatureKeyAttribute(String, String) |
Crea una nueva instancia de la clase AssemblySignatureKeyAttribute con la clave pública y la contrafirma especificadas. |
Propiedades
Countersignature |
Obtiene la contrafirma para el nombre seguro del ensamblado. |
PublicKey |
Obtiene la clave pública para el nombre seguro usado para firmar el ensamblado. |
TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
Métodos
Equals(Object) |
Devuelve un valor que indica si esta instancia es igual que un objeto especificado. (Heredado de Attribute) |
GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsDefaultAttribute() |
Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
Match(Object) |
Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Heredado de Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Heredado de Attribute) |