2009-07-28 13 views
10

Sto usando System.Configuration per crittografare e proteggere alcune password in una sezione di configurazione personalizzata vis: -.ProtectSection con RsaProtectedConfigurationProvider dove va la chiave?

static public void SetPassAndProtectSection(string newPassword) 
{ 

    // Get the current configuration file. 
    System.Configuration.Configuration config = 
     ConfigurationManager.OpenExeConfiguration(
     ConfigurationUserLevel.None); 


    // Get the section. 
    MyAppProtectedSection section = 
     (MyAppProtectedSection)config.GetSection(DEFAULT_SECTION_NAME); 

    section.DBPassword = newPassword; 

    // Protect (encrypt)the section. 
    section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); 

    // Save the encrypted section. 
    section.SectionInformation.ForceSave = true; 

    config.Save(ConfigurationSaveMode.Full); 
} 

Questo sembra funzionare bene ma ho bisogno di alcune informazioni extra per la mia documentazione.

Dove viene memorizzata la chiave?

Quanto dura la chiave?

Michael

risposta

10

chiavi livello utente vengono conservati a

\ Documents and Impostazioni {username} \ Application Data \ Microsoft \ Crypto \ RSA

chiavi a livello di computer a

\ Documents and Setti NGS \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys

sii una chiave a livello di utente.

+0

Grazie h0b0 L'ho verificato ed è corretto. Sono rimasto un po 'scioccato nello scoprire che la posizione dei tasti di livello della macchina ha un accesso predefinito di "Everyone..read". Sto pensando che avrò bisogno di usare i tasti del livello utente perché nel mio caso l'utente della chiave è un servizio Windows che viene eseguito come un account specifico. Grazie per la risposta. –

+0

Nota: la posizione potrebbe essere cambiata nella versione successiva di Windows. Quello sulla mia risposta era diverso. –

0

Avevo uno scenario in cui dovevo concedere a un account di servizio locale l'accesso alla chiave RsaProtectedConfigurationProvider su un server Windows 2012.

Alla fine, concedere l'accesso su C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys ha funzionato.

Problemi correlati