Condividi tramite


CA2210: Gli assembly devono avere nomi sicuri validi

TypeName

AssembliesShouldHaveValidStrongNames

CheckId

CA2210

Category

Microsoft.Design

Breaking Change

Non sostanziale

Causa

Un assembly non è firmato con un nome sicuro, il nome sicuro non può essere verificato oppure il nome sicuro non sarebbe valido senza le impostazioni correnti del Registro di sistema del computer.

Descrizione della regola

Questa regola recupera e verifica il nome sicuro di un assembly. Si verifica una violazione se qualsiasi delle seguenti condizioni è vera:

  • L'assembly non presenta un nome sicuro.

  • L'assembly è stato alterato dopo la firma.

  • L'assembly presenta una firma ritardata.

  • L'assembly è stato firmato in modo errato o il processo di firma non è riuscito.

  • L'assembly richiede impostazioni del Registro di sistema per superare la verifica. Ad esempio, è stato utilizzato lo strumento Nome sicuro (Sn.exe) per ignorare la verifica dell'assembly.

Il nome sicuro protegge i client dal caricamento involontario di un assembly alterato. Gli assembly con nomi sicuri non devono essere distribuiti al di fuori di scenari molto limitati. Se si condividono o distribuiscono assembly non firmati correttamente, l'assembly può essere alterato, non essere caricato in Common Language Runtime oppure l'utente potrebbe avere la necessità di disabilitare la verifica nel proprio computer. Un assembly senza un nome sicuro presenta i seguenti svantaggi:

  • Non è possibile verificarne l'origine.

  • In Common Language Runtime non è possibile avvisare gli utenti se il contenuto dell'assembly è stato alterato.

  • Non può essere caricato nella Global Assembly Cache.

Si noti che per caricare e analizzare un assembly con firma ritardata è necessario disabilitare la verifica per l'assembly.

Come correggere le violazioni

Per creare una file di chiavi

Utilizzare una delle seguenti procedure:

Per firmare l'assembly con un nome sicuro in Visual Studio

  1. In Visual Studio, aprire la soluzione.

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Proprietà.

  3. Fare clic sulla scheda Firma e selezionare la casella di controllo Firma assembly.

  4. Da Scegli un file chiave con nome sicuro selezionare Nuovo.

    Verrà visualizzata la finestra Crea chiave con nome sicuro.

  5. In Nome file di chiave digitare un nome per la chiave con nome sicuro.

  6. Scegliere se proteggere la chiave con una password, quindi scegliere OK.

  7. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e scegliere Compila.

Per firmare l'assembly con un nome sicuro all'esterno di Visual Studio

Esclusione di avvisi

Escludere un avviso da questa regola solo se l'assembly è utilizzato in un ambiente dove non si pone il problema di alterazione del contenuto.

Vedere anche

Attività

Procedura: firmare un assembly con un nome sicuro

Riferimenti

Sn.exe (strumento Nome sicuro)

System.Reflection.AssemblyKeyFileAttribute

System.Reflection.AssemblyKeyNameAttribute