Condividi tramite


Specifica di un provider di configurazione protetta

Aggiornamento: novembre 2007

È possibile crittografare e decrittografare sezioni di un file Web.config mediante una classe ProtectedConfigurationProvider. Nell'elenco riportato di seguito sono illustrati i provider di configurazione protetta inclusi in .NET Framework.

Entrambi i provider offrono la crittografia avanzata dei dati. Se, tuttavia, si intende utilizzare lo stesso file di configurazione crittografato su più server, ad esempio una Web farm, solo RsaProtectedConfigurationProvider consentirà di esportare le chiavi di crittografia e di importarle in un altro server.

.NET Framework consente inoltre di definire provider di configurazione protetta personalizzati. Per informazioni dettagliate, vedere Implementazione di un provider di configurazione protetta.

Configurazione di un provider di configurazione protetta

È possibile specificare un provider di configurazione protetta oppure utilizzare uno dei provider incorporati in ASP.NET. Per impostazione predefinita, il file Machine.config specifica i provider di configurazione protetta seguenti:

È possibile specificare un provider di configurazione protetta nella sezione configProtectedData di un file di configurazione. Per specificare un provider con impostazioni personalizzate, è possibile dichiarare una nuova istanza di provider mediante l'elemento add dell'elemento providers. È possibile identificare l'istanza del provider come provider predefinito mediante l'attributo defaultProvider dell'elemento configProtectedData.

Nell'esempio riportato di seguito viene configurata un'istanza di RsaProtectedConfigurationProvider con il nome SampleProvider che viene impostata come provider predefinito.

<configuration>
  <configProtectedData defaultProvider="SampleProvider">
    <providers>
      <add name="SampleProvider" 
        type="System.Configuration.RsaProtectedConfigurationProvider, 
              System.Configuration, Version=2.0.0.0, Culture=neutral, 
              PublicKeyToken=b03f5f7f11d50a3a,
             processorArchitecture=MSIL"
        keyContainerName="SampleKeys" 
        useMachineContainer="true" />
    </providers>
  </configProtectedData>
</configuration>

Per la crittografia delle sezioni di configurazione viene utilizzato il nome dell'istanza del provider di configurazione protetta. Per ulteriori informazioni, vedere Crittografia e decrittografia di sezioni di configurazione.

Opzioni del provider di configurazione protetta

Ogni provider di configurazione protetta espone opzioni che è possibile impostare mediante attributi della dichiarazione del provider nel file di configurazione. Tutti i provider richiedono gli attributi type e description, nonché keyName per l'istanza del provider. Le opzioni sono, inoltre, univoche per ciascun tipo di provider.

Nella tabella riportata di seguito vengono descritte le opzioni di configurazione per RsaProtectedConfigurationProvider.

Attributo

Descrizione

type

Tipo di provider di configurazione protetta. Nell'esempio riportato di seguito viene illustrata la definizione di RsaProtectedConfigurationProvider.

type="System.Configuration.RsaProtectedConfigurationProvider,
      System.Configuration, Version=2.0. 0.0,
      Culture=neutral,
      PublicKeyToken=b03f5f7f11d0a3a,
      processorArchitecture=MSIL"

description

Descrizione dell'istanza del provider.

keyContainerName

Nome del contenitore di chiavi RSA utilizzato per crittografare o decrittografare il contenuto del file Web.config.

Nota:
Il processo ASP.NET deve essere autorizzato all'accesso in lettura al contenitore di chiavi RSA. È possibile garantire l'accesso a un contenitore di chiavi RSA con lo strumento Aspnet_regiis.exe mediante l'opzione -pa. Per ulteriori informazioni, vedere Importazione ed esportazione di contenitori di chiavi RSA della configurazione protetta.

useMachineContainer

true se il contenitore di chiavi RSA è un contenitore a livello di computer, false se il contenitore di chiavi RSA è un contenitore a livello utente. Per ulteriori informazioni, vedere la classe Crittografia delle informazioni di configurazione utilizzando la configurazione protetta.

useOAEP

true per utilizzare OAEP (Optimal Asymmetric Encryption Padding) per la crittografia e la decrittografia. In caso contrario, false. Per ulteriori informazioni, vedere la classe RSAOAEPKeyExchangeFormatter.

cspProviderName

Nome del provider del servizio di crittografia (CSP, Cryptographic Service Provider) dell'API di crittografia di Windows (crypto API). Per ulteriori informazioni, vedere ProviderName.

Nella tabella riportata di seguito vengono descritte le opzioni di configurazione per DpapiProtectedConfigurationProvider.

Attributo

Descrizione

type

Tipo di provider di configurazione protetta. Nell'esempio riportato di seguito viene illustrata la definizione di DpapiProtectedConfigurationProvider:

type="System.Configuration.DpapiProtectedConfigurationProvider,
      System.Configuration, Version=2.0.0.0,
      Culture=neutral,
      PublicKeyToken=b03f5f7f11d0a3a,
      processorArchitecture=MSIL"

description

Descrizione dell'istanza del provider.

keyEntropy

Valore specifico dell'applicazione da includere nella chiave di crittografia per la protezione da altre applicazioni in grado di decrittografare informazioni crittografate. Per ulteriori informazioni, fare riferimento al parametro OptionalEntropy del metodo CryptProtectData della DPAPI (Data Protection API) di Windows.

useMachineProtection

true per utilizzare la protezione specifica del computer, false per utilizzare la protezione specifica dell'account utente. Nel caso di true, qualsiasi processo in esecuzione nel computer può annullare la protezione dei dati e si consiglia di limitare l'accesso ai dati crittografati mediante un elenco di controllo dell'accesso (ACL, Access Control List). Per ulteriori informazioni, vedere il valore CRYPTPROTECT_LOCAL_MACHINE per il parametro dwFlags del metodo CryptProtectData della DPAPI (Data Protection API) di Windows.

Vedere anche

Attività

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

Altre risorse

Crittografia delle informazioni di configurazione utilizzando la configurazione protetta