Condividi tramite


Procedura: disattivare la funzionalità che consente di ignorare il nome sicuro

Aggiornamento: Luglio 2008

A partire da .NET Framework versione 3.5 Service Pack 1 (SP1), le firme con nome sicuro non vengono convalidate quando un assembly viene caricato in un oggetto AppDomain con attendibilità totale, ad esempio l'oggetto AppDomain predefinito per la zona MyComputer. Questa novità viene definita funzionalità che consente di ignorare il nome sicuro. In un ambiente di attendibilità totale le richieste di StrongNameIdentityPermission hanno sempre esito positivo per gli assembly firmati con attendibilità totale, indipendentemente dalla firma. L'unica restrizione è che l'assembly deve essere completamente completamente attendibile perché la relativa area è completamente attendibile. Poiché il nome sicuro non è un fattore determinante in queste condizioni, non esiste alcun motivo per cui venga validato. Se la convalida di firme con nome sicuro viene ignorata, si ottengono miglioramenti significativi delle prestazioni.

La funzionalità che consente di ignorare il nome sicuro si applica a qualsiasi assembly completamente attendibile che non abbia la firma ritardata e che sia caricato in un oggetto AppDomain con attendibilità totale dalla directory specificata dalla proprietà ApplicationBase.

È possibile ignorare questa funzionalità per tutte le applicazioni di un computer impostando il valore di una chiave del Registro di sistema. È possibile ignorare l'impostazione per una singola applicazione utilizzando il relativo file di configurazione. Non è possibile ripristinare questa funzionalità per una singola applicazione se è stata disattivata dalla chiave del Registro di sistema.

Quando si ignora la funzionalità, il nome sicuro viene convalidato solo per verificare che sia corretto. Non viene controllata la presenza di un oggetto StrongNameIdentityPermission. Se si desidera verificare un nome sicuro specifico, è necessario eseguire il controllo separatamente.

Nota importante:

La possibilità per forzare la convalida del nome sicuro dipende da una chiave del Registro di sistema, come descritto nella procedura seguente. Se un'applicazione è in esecuzione con un account che non dispone di un'autorizzazione ACL (Access Control List, elenco di controllo di accesso) per l'accesso alla chiave del Registro di sistema, l'impostazione non ha alcun effetto. Assicurarsi che siano configurati diritti ACL per questa chiave, in modo che sia leggibile per tutti gli assembly.

Per disattivare la funzionalità che consente di ignorare il nome sicuro per tutte le applicazioni

  • Nei computer a 32 bit creare una sottochiave della chiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework nel Registro di sistema. Utilizzare il nome di chiave AllowStrongNameBypass con il valore di DWORD impostato su 0.

    -oppure-

  • Nei computer a 64 bit creare una sottochiave della chiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework nel Registro di sistema. Utilizzare il nome di chiave AllowStrongNameBypass con il valore di DWORD impostato su 0. Creare la stessa sottochiave sotto la chiave HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework.

Per disattivare la funzionalità che consente di ignorare il nome sicuro per una singola applicazione

  1. Aprire o creare il file di configurazione dell'applicazione.

    Per ulteriori informazioni su questo file, vedere File di configurazione dell'applicazione.

  2. Aggiungere la voce seguente:

    <configuration>
      <runtime>
         < bypassTrustedAppStrongNames enabled="false" />
      </runtime>
    </configuration>
    

È possibile ripristinare la funzionalità per l'applicazione rimuovendo l'impostazione del file di configurazione oppure impostando l'attributo su "true".

Nota:

È possibile attivare e disattivare la convalida dei nomi sicuri per un'applicazione solo se nel computer è attivata la funzionalità che consente di ignorare il nome sicuro. Se tale funzionalità è stata disattivata per il computer, i nomi sicuri vengono convalidati per tutte le applicazioni e non è possibile ignorare la convalida per una singola applicazione.

Vedere anche

Riferimenti

Strumento Nome sicuro (Sn.exe)

Elemento <bypassTrustedAppStrongNames>

Altre risorse

Creazione e utilizzo degli assembly con nome sicuro

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2008

Argomento aggiunto.

Modifica di funzionalità in SP1.