CA2210: Los ensamblados deben tener nombres seguros válidos
Elemento | Valor |
---|---|
RuleId | CA2210 |
Category | Microsoft.Design |
Cambio importante | Poco problemático |
Causa
No se ha firmado un ensamblado con un nombre seguro, no se pudo comprobar el nombre seguro o el nombre seguro no sería válido sin la configuración actual del Registro del equipo.
Nota
Esta regla está en desuso. Para más información, consulte Reglas en desuso.
Descripción de la regla
Esta regla recupera y comprueba el nombre seguro de un ensamblado. Se produce una infracción si se cumple alguna de las siguientes condiciones:
El ensamblado no tiene un nombre seguro.
El ensamblado se modificó después de la firma.
El ensamblado se firmó con retraso.
El ensamblado se firmó incorrectamente o se produjo un error en la firma.
El ensamblado requiere la configuración del registro para pasar la comprobación. Por ejemplo, la herramienta de nombre seguro (Sn.exe) se usó para omitir la comprobación del ensamblado.
El nombre seguro protege los clientes de cargar inconscientemente un ensamblado con el que se ha alterado. Los ensamblados sin nombres seguros sólo deben implementarse en escenarios muy limitados. Si se comparten o se distribuyen ensamblados que no están correctamente firmados, el ensamblado puede manipularse, el Common Language Runtime podría no cargar el ensamblado o el usuario podría deshabilitar la comprobación del equipo. Un ensamblado sin un nombre seguro tiene las siguientes desventajas:
No se pueden comprobar sus orígenes.
Common Language Runtime no puede advertir a los usuarios si se ha modificado el contenido del ensamblado.
No se puede cargar en la caché global de ensamblados.
Tenga en cuenta que, para cargar y analizar un ensamblado firmado con retraso, debe deshabilitar la comprobación del ensamblado.
Cómo corregir infracciones
Creación de un archivo de clave
Realice uno de los siguientes procedimientos:
Para .NET Framework 2.0, use la opción del compilador
/keyfile
o/keycontainer
, o bien la opción del enlazador /KEYFILE (especificar una clave o un par de claves para firmar un ensamblado) o /KEYCONTAINER (especificar un contenedor de claves para firmar un ensamblado) en C++.Para .NET Framework v1.0 o v1.1, use los atributos System.Reflection.AssemblyKeyFileAttribute o System.Reflection.AssemblyKeyNameAttribute.
Firma del ensamblado con un nombre seguro en Visual Studio
Abra su solución en Visual Studio.
En el Explorador de soluciones, haga clic con el botón derecho del mouse en su proyecto y después seleccione Propiedades.
Haga clic en la pestaña Firma y seleccione la casilla Firmar el ensamblado.
En la listaElija un archivo de clave de nombre seguro, seleccione Nuevo.
Se mostrará la ventana Crear clave de nombre seguro.
En Nombre del archivo de clave, escriba un nombre para la clave de nombre seguro.
Elija si quiere proteger la clave con una contraseña y, después, haga clic en Aceptar.
En el Explorador de soluciones, haga clic con el botón derecho del mouse en su proyecto y después seleccione Compilar.
Firma del ensamblado con un nombre seguro fuera de Visual Studio
Use la herramienta de nombre seguro (Sn.exe).
Cuándo suprimir las advertencias
Suprima una advertencia de esta regla únicamente si el ensamblado se usa en un entorno en el que la alteración del contenido no es un problema.
Vea también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de