Crittografia e decrittografia di sezioni di configurazione

Aggiornamento: novembre 2007

È possibile utilizzare lo strumento di ASP.NET per la registrazione di IIS (Aspnet_regiis.exe) per crittografare o decrittografare sezioni di un file di configurazione Web. In ASP.NET gli elementi di configurazione crittografati vengono automaticamente decrittografati durante l'elaborazione del file Web.config.

Nota:

Lo strumento Aspnet_regiis.exe si trova nella cartella %windows%\Microsoft.NET\Framework\NumeroVersione.

È inoltre possibile utilizzare le classi di configurazione protetta nello spazio dei nomi System.Configuration per crittografare e decrittografare sezioni di un file di configurazione Web, sezioni di un file di configurazione per un eseguibile (exe) o sezioni dei file di configurazione a livello di computer e di applicazione. Per ulteriori informazioni, vedere il metodo ProtectSection della classe SectionInformation. Per informazioni su come fare riferimento a una sezione di un file Web.config, vedere la classe WebConfigurationManager. Per informazioni su come fare riferimento a sezioni di configurazione di file diversi dal file Web.config, vedere la classe ConfigurationManager.

Crittografia di una sezione di configurazione Web

Per crittografare il contenuto del file di configurazione, utilizzare lo strumento Aspnet_regiis.exe specificando l'opzione –pe e il nome dell'elemento di configurazione da crittografare.

Utilizzare l'opzione –app per identificare l'applicazione per la quale verrà crittografato il file Web.config e l'opzione -site per identificare il sito Web di cui fa parte l'applicazione. Il sito Web viene identificato utilizzando il numero indicato nella metabase IIS (Internet Information Services). Il numero del sito può essere recuperato dalla variabile del server INSTANCE_META_PATH nell'insieme ServerVariables. Quando ad esempio si installa IIS, un sito Web denominato "Default Web Site" viene creato come sito 1. Nelle pagine servite da tale sito, la variabile del server INSTANCE_META_PATH restituisce "/LM/W3SVC/1". Se non si specifica un'opzione -site, viene utilizzato il sito 1.

Utilizzare l'opzione –prov per identificare il nome dell'oggetto ProtectedConfigurationProvider che eseguirà la crittografia e la decrittografia. Se non si specifica un provider mediante l'opzione -prov, verrà utilizzato il provider configurato come defaultProvider.

Nota:

Se si utilizza un'istanza RsaProtectedConfigurationProvider che specifica un contenitore di chiavi personalizzato, è necessario creare il contenitore di chiavi prima di eseguire lo strumento Aspnet_regiis.exe. Per ulteriori informazioni, vedere Importazione ed esportazione di contenitori di chiavi RSA della configurazione protetta.

Il comando seguente crittografa l'elemento connectionStrings nel file Web.config per l'applicazione SampleApplication. Poiché non è inclusa alcuna opzione -site, si presuppone che l'applicazione provenga dal sito Web 1 (quasi sempre Default Web Site in IIS). La crittografia viene realizzata utilizzando l'istanza RsaProtectedConfigurationProvider specificata nella configurazione del computer.

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"

Quando viene richiesta una pagina o un'altra risorsa ASP.NET dell'applicazione, viene chiamato il provider relativo alla sezione di configurazione protetta per decrittografare le informazioni che verranno utilizzate in ASP.NET e nel codice dell'applicazione.

Nota:

Per crittografare e decrittografare una sezione del file Web.config, il processo ASP.NET deve disporre dell'autorizzazione per la lettura delle informazioni sulla chiave di crittografia appropriata. Per ulteriori informazioni, vedere Importazione ed esportazione di contenitori di chiavi RSA della configurazione protetta.

Decrittografia di una sezione di configurazione Web

Per decrittografare il contenuto del file di configurazione, utilizzare lo strumento Aspnet_regiis.exe specificando l'opzione -pd e il nome dell'elemento di configurazione da decrittografare. Utilizzare le opzioni –app e -site per identificare l'applicazione per la quale verrà decrittografato il file Web.config. Non è necessario specificare l'opzione –prov per identificare il nome dell'oggetto ProtectedConfigurationProvider, in quanto le informazioni vengono lette dall'attributo configProtectionProvider della sezione di configurazione protetta.

Il comando riportato di seguito consente di decrittografare l'elemento connectionStrings nel file Web.config per l'applicazione ASP.NET SampleApplication.

aspnet_regiis -pd "connectionStrings" -app "/SampleApplication"

Vedere anche

Attività

Procedura dettagliata: crittografia delle informazioni di configurazione utilizzando la configurazione protetta

Concetti

Specifica di un provider di configurazione protetta

Altre risorse

Crittografia delle informazioni di configurazione utilizzando la configurazione protetta