Compartir por


Ensamblados con nombre seguro

Al asignar un nombre seguro a un ensamblado, se crea una identidad única para este, lo que puede evitar conflictos de ensamblado.

¿Cómo se obtiene un ensamblado con nombre seguro?

Para generar un ensamblado con nombre seguro es necesario usar la clave privada que se corresponda con la clave pública distribuida con el ensamblado, además del ensamblado en sí. En el ensamblado se incluye el manifiesto del ensamblado, que contiene los nombres y los hash de todos los archivos que componen el ensamblado. Los ensamblados que tengan el mismo nombre seguro deben ser idénticos.

Puede asignar un nombre seguro a los ensamblados mediante Visual Studio o una herramienta de línea de comandos. Para obtener más información, vea Cómo: Firmar un ensamblado con un nombre seguro o Sn.exe (herramienta de nombre seguro).

Cuando se crea un ensamblado con nombre seguro, contiene el nombre de texto simple del ensamblado, el número de versión, la información de referencia cultural opcional, una firma digital y la clave pública que corresponde a la clave privada usada para la firma.

Advertencia

No confíe en nombres seguros para la seguridad. Solo proporcionan una identidad única.

¿Por qué asignar nombres seguros a los ensamblados?

Para .NET Framework, los ensamblados con nombre seguro son útiles en los escenarios siguientes:

  • Cuando quiere habilitar los ensamblados para hacer referencia a ensamblados con nombre seguro, o quiere dar acceso friend a sus ensamblados desde otros ensamblados con nombre seguro.

  • Una aplicación necesita acceso a diferentes versiones del mismo ensamblado. Esto quiere decir que necesita cargar en paralelo diferentes versiones de un ensamblado en el mismo dominio de la aplicación sin que surjan conflictos. Por ejemplo, si existen extensiones diferentes de una API en ensamblados que tienen el mismo nombre simple, la nomenclatura segura proporciona una identidad única para cada versión del ensamblado.

  • No desea afectar negativamente al rendimiento de las aplicaciones que usan el ensamblado, por lo que quiere que el ensamblado sea neutral del dominio. Esto requiere nombres seguros, ya que se debe instalar un ensamblado de dominio neutro en la caché global de ensamblados.

  • Cuando quiere centralizar el servicio de la aplicación mediante una directiva de edición, lo que significa que el ensamblado se debe instalar en la caché global de ensamblados.

En .NET Core y .NET 5+, los ensamblados con nombre seguro no proporcionan ventajas materiales. El tiempo de ejecución nunca valida la firma de nombre seguro ni usa el nombre seguro para el enlace de ensamblados.

Si es un desarrollador de código abierto y desea que las ventajas de identidad de un ensamblado con nombre seguro sean más compatibles con .NET Framework, considere la posibilidad de proteger la clave privada asociada a un ensamblado en el sistema de control de código fuente.

Consulte también