Problema criptazione file configurazione

di il
5 risposte

Problema criptazione file configurazione

Gentili,
devo implementare un serverino Asp.Net su IIS con delle Api per dare accesso ad app esterne al db locale e sto tentando di criptare la stringa di connessione nel file web.config seguendo questo link https://www.codeproject.com/Tips/795135/Encrypt-ConnectionString-in-Web-Config

Lanciando il comando:
ASPNET_REGIIS -pef "connectionStrings" "C:\Users\Lucius\Desktop\WebAppProva\WebAppProva"
in effetti la stringa viene correttamente cifrata; il post afferma, se non ho capito male, che Asp.Net si dovrebbe arrangiare a leggere la stringa criptata e la stessa va decriptata solo se si ha necessità di modificarla, però eseguendo la pagina in Visual Studio con IIS Express mi ritorna l'errore:
System.Configuration.ConfigurationErrorsException: 'Impossibile decrittografare mediante il provider 'RsaProtectedConfigurationProvider'. Messaggio di errore dal provider: Impossibile aprire il contenitore di chiavi RSA.'
Ho provato anche a scaricare e lanciare brutalmente l'esempio fornito nel post ma l'errore ritornato è lo stesso.
La stessa modalità di criptazione-decriptazione l'ho letta anche in altri post, solo che non riesco a venirne fuori, avete qualche link più recente con la procedura corretta?
Grazie in anticipo.
Lucius

5 Risposte

  • Re: Problema criptazione file configurazione

    Se esegui visual studio come admin cambia qualcosa?
  • Re: Problema criptazione file configurazione

    Manca qualche pezzo. Domani do un'occhiata alla mia documentazione e ti faccio sapere.
  • Re: Problema criptazione file configurazione

    Ecco la procedura per criptare la connection string del web.config

    Crei la chiave e il container che ipotizzaimo chiamare "MyKeysProgetto1" e gestisci l'autorizzazione di accesso al container.
    Do per scontato che venga utilizzata l'utenza virtuale "IIS APPPOOL\utenza" che è la soluzione più sicura.

    cd %windir%\Microsoft.NET\Framework64\v4.0.30319
    aspnet_regiis -pc "MyKeysProgetto1" -exp
    aspnet_regiis -pa "MyKeysProgetto1" "IIS APPPOOL\utenza"
    
    Aggiungere nel web config:
    <configProtectedData>
          <providers>
             <add name="MyProviderProgetto1"
                  type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,
                        Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
                        processorArchitecture=MSIL"
                  keyContainerName="MyKeysProgetto1" 
                  useMachineContainer="true" />
          </providers>
       </configProtectedData>
    e poi esegui la criptazione della connection string
    
    ASPNET_REGIIS -pef "connectionStrings" "Path in cui si trova il web.config" -prov "MyProviderProgetto1"
    
  • Re: Problema criptazione file configurazione

    Gentili,
    per il momento ho potuto provare come da suggerimento di Surfernet, dopo aver semplicemente ri-criptato come da link riportato nella mia richiesta di help e lanciando Visual Studio come Admin mi sembra funzionare correttamente, legge la stringa.
    Più tardi provo il metodo più completo di Toki.
    Troppo bravi, grazie mille.
    Lucius
  • Re: Problema criptazione file configurazione

    Gentili,
    mi scuso per il ritardo della risposta, ma ho avuto giorni pieni.
    Confermo che per criptare il file web.config basta eseguire il comando al prompt aperto in modalità amministratore.
    Asp.Net legge automaticamente la stringa senza bisogno di decriptarla nel codice, purché venga aperto in modalità amministratore, e questo vale anche per IIS Express pertanto Visual Studio deve essere aperto come amministratore.
    A pensarci bene, dovevo arrivarci da solo perché se la stringa viene criptata in base all'utente e il prompt deve essere aperto come amministratore è logico che anche Visual Studio deve essere aperto in quella modalità.
    IIS non per nulla è eseguito sulla macchina come admin.
    Scusate la domanda idiota, e grazie ancora per i suggerimenti preziosissimi.
    Lucius
Devi accedere o registrarti per scrivere nel forum
5 risposte