Criptare le stringhe di connessione

di: Angelo Ranucci     16 Maggio 2006

A questo punto possiamo testare l'applicazione con il nuovo Web.Config e verificare che funzioni. Possiamo inoltre testare il decriptaggio e l'altro metodo di criptaggio.

Si possono proteggere quasi tutte le sezioni del Web.Config. Per verificare se una sezione è protetta, si può usare la proprietà IsProtected della classe SectionInformation. Possiamo ad esempio modificare il nostro codice in modo che operi il criptaggio solo se non è stato già operato e fare un discorso analogo per il decriptaggio.

Listato 6. Metodo Cripta() con il controllo sulla protezione già operata

public void Cripta(string protectionProvider)
{
  // apriamo il file di configurazione
  Configuration WebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
  // specifichiamo la sezione da criptare
  ConfigurationSection sezioneProt = WebConfig.Sections["connectionStrings"];
  //verifichiamo di non aver già codificato
  if (!sezioneProt.SectionInformation.IsProtected)
  {
    // specifichiamo il protection provider da applicare alla sezione da criptare
    sezioneProt.SectionInformation.ProtectSection(protectionProvider);
    // salviamo il file di configurazione modificato
    WebConfig.Save();
    Messaggio1.Text = "Web.Config criptato con " + protectionProvider;
  }
  else
   Messaggio1.Text = "Web.Config già criptato";
}

Se abbiamo un Web.Config in cui le stringhe di connessione sono crifrate, come è il caso del listato 4, e cerchiamo di aggiungere una nuova stringa di connessione in fase di programmazione, essa verrà automaticamente cifrata, come possiamo verificare utilizzando ad esempio il metodo aggiungiStringaConnessione() riportato nel listato 7.

Listato 7. Metodo aggiungiStringaConnessione()

public void aggiungiStringaConnessione()
{
  Configuration WebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
  ConnectionStringSettings connStrSettings = new ConnectionStringSettings("NORTHWNDConnectionString", "Data Source=.\\SQLEXPRESS;AttachDbFilename="C:\\SQL Server 2000 Sample Databases\\NORTHWND.MDF";Integrated Security=True;Connect Timeout=30;User Instance=True");
  WebConfig.ConnectionStrings.ConnectionStrings.Add(connStrSettings);
  WebConfig.Save();
}

Il codice sorgente dell'esempio sviluppato in questo articolo può essere scaricato da qui.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto