Cripta la stringa di connessione in app.config

Ho problemi a crittografare una stringa di connessione in app.config. Ho un codice che proteggerà la sezione connectionStrings di app.config, ma la password è ancora visualizzata in testo normale.

Devo crittografare la stringa di connessione in modo che non sia in chiaro quando viene distribuita. Vedo domande simili su SO per web.config, ma non app.config.

Dai un’occhiata a questo articolo ci sono alcuni esempi molto utili. Stai cercando fondamentalmente System.Configuration.SectionInformation.ProtectSection per aiutarti qui.

Dai un’occhiata a Implementing Protected Configuration

È ansible applicare facilmente la stessa soluzione di web.config, basta rinominare app.config in web.config, crittografare con lo strumento aspnet_regiis e quindi rinominarlo in app.config.

  1. Rinominare app.config in web.config
  2. Aprire il prompt dei comandi e digitare:
    %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionStrings" c:\ (ferma a livello di cartella e non mettere il trailing “\”)
  3. rinominare web.config nuovamente in app.config

Puoi aprirlo nel blocco note per vedere il file crittografato. In Visual Studio vedrai che è decodificato. È ansible utilizzare la stringa di connessione nello stesso modo in cui non fosse crittografata.

Definire la posizione del file di config

 Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

se si desidera crittografare connectionStrings

 config.ConnectionStrings.SectionInformation.ProtectSection(Nothing); 

devi essere a conoscenza delle porzioni di configurazione dell’app

quindi se vuoi criptare AppSettings

 config.AppSettings.SectionInformation.ProtectSection(Nothing); 

inserisci la descrizione dell'immagine qui