2009-07-28 10 views
10

Ich benutze System.Configuration, um einige Passwörter in einem benutzerdefinierten Konfigurationsabschnitt zu verschlüsseln und zu schützen. Vis: -.ProtectSection mit RsaProtectedConfigurationProvider Wohin geht der Schlüssel?

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); 
} 

Dies scheint gut zu funktionieren, aber ich brauche einige zusätzliche Informationen für meine Dokumentation.

Wo ist der Schlüssel gespeichert?

Wie lange ist der Schlüssel?

Michael

Antwort

10

Benutzerebene Schlüssel werden bei

\ Dokumente gespeichert und Einstellungen {Username} \ Anwendungs ​​ Data \ Microsoft \ Crypto \ RSA

Maschinennahes Tasten

\ Dokumente und Setti NGS \ All Users \ Application Data \ Microsoft \ Crypto \ RSA \ Machine

Yours ist ein User-Level-Schlüssel.

+0

Danke h0b0 Ich habe es überprüft und das ist richtig. Ich war ein wenig geschockt, als ich entdeckte, dass der Standort des Schlüssels auf Maschinenebene einen Standardzugriff auf "alle..lesen" hat. Ich denke, dass ich die Benutzerebenenschlüssel verwenden muss, da in meinem Fall der Benutzer des Schlüssels ein Windows-Dienst ist, der als ein bestimmtes Konto ausgeführt wird. Vielen Dank für Ihre Antwort. –

+0

Hinweis: Die Position wurde möglicherweise in späteren Versionen von Windows geändert. Der auf meiner Antwort war anders. –

0

Ich hatte ein Szenario, in dem ich einem lokalen Dienstkonto Zugriff auf den RsaProtectedConfigurationProvider-Schlüssel auf einem Windows 2012-Server gewähren musste.

Am Ende hat das Gewähren von Zugriff auf C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys den Trick ausgeführt.

Verwandte Themen