2009-07-28 10 views
10

Estoy usando System.Configuration para encriptar y proteger algunas contraseñas en una sección de configuración personalizada vis: -.ProtectSection con RsaProtectedConfigurationProvider ¿a dónde va la llave?

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

Parece que funciona bien, pero necesito algo de información adicional para mi documentación.

¿Dónde se almacena la llave?

¿Cuánto dura la llave?

Michael

Respuesta

10

claves nivel de usuario se almacenan en

\ Documents and Ajustes {usuario} \ Application Data \ Microsoft \ Crypto \ RSA

claves de nivel a máquina a

\ Documents and Setti NGS \ Todos los usuarios \ Data \ Microsoft \ Crypto \ RSA \ MachineKeys

la suya es una clave a nivel de usuario.

+0

Gracias h0b0 Lo he comprobado y es correcto. Me sorprendió un poco descubrir que la ubicación de las teclas a nivel de máquina tiene un acceso predeterminado de 'everyone..read'. Estoy pensando que necesitaré usar las claves de nivel de usuario porque en mi caso el usuario de la clave es un servicio de Windows que se ejecuta como una cuenta específica. Gracias por su respuesta. –

+0

Nota: la ubicación puede haber cambiado en la versión posterior de Windows. El de mi respuesta fue diferente. –

0

Tuve una situación en la que necesitaba otorgar acceso a una cuenta de servicio local a la clave RsaProtectedConfigurationProvider en un servidor de Windows 2012.

Al final, otorgar acceso en C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys hizo el truco.

Cuestiones relacionadas