Cifrar y descifrar secciones de configuración

Actualización: noviembre 2007

Puede utilizar la Herramienta Registro de IIS de ASP.NET (Aspnet_regiis.exe) para cifrar o descifrar secciones de un archivo de configuración Web. ASP.NET descifrará automáticamente los elementos de configuración cifrados al procesar el archivo Web.config.

Nota:

La herramienta Aspnet_regiis.exe está situada en la carpeta %windows%\Microsoft.NET\Framework\versionNumber.

También puede utilizar las clases de configuración protegida del espacio de nombres System.Configuration para cifrar y descifrar secciones de un archivo de configuración Web, secciones de un archivo de configuración para un ejecutable (.exe) o secciones de los archivos de configuración en el equipo y en la aplicación. Para obtener más información, vea el método ProtectSection de la clase SectionInformation. Para obtener información sobre cómo hacer referencia a una sección de un archivo Web.config, vea la clase WebConfigurationManager. Para obtener información sobre cómo hacer referencia a las secciones de configuración de otros archivos que no sean el archivo Web.config, vea la clase ConfigurationManager.

Cifrar una sección de configuración Web

Para cifrar el contenido del archivo de configuración, utilice la herramienta Aspnet_regiis.exe con la opción –pe y el nombre del elemento de configuración que se va a cifrar.

Utilice la opción –app para identificar la aplicación para la cual se va a cifrar el archivo Web.config y la opción -site para identificar el sitio Web del que forma parte la aplicación. El sitio Web se identifica utilizando el número del sitio de la metabase de los Servicios de Internet Information Server (IIS). Puede recuperar el número del sitio desde la variable del servidor INSTANCE_META_PATH de la colección ServerVariables. Por ejemplo, cuando está instalado IIS, se crea un sitio Web denominado "Default Web Site" como sitio 1. En las páginas que provienen de ese sitio, la variable del servidor INSTANCE_META_PATH devuelve "/LM/W3SVC/1". Si no especifica una opción -site, se utiliza sitio 1.

Utilice la opción –prov para identificar el nombre del ProtectedConfigurationProvider que llevará a cabo el cifrado y descifrado. Si no especifica un proveedor mediante la opción -prov, se utilizará el proveedor configurado como defaultProvider.

Nota:

Si está utilizando una instancia de RsaProtectedConfigurationProvider que especifica un contenedor de claves personalizado, debe crear el contenedor de claves antes de ejecutar la herramienta Aspnet_regiis.exe. Para obtener más información, vea Importar y exportar contenedores de claves RSA con configuración protegida.

El comando siguiente cifra el elemento connectionStrings del archivo Web.config para la aplicación SampleApplication. Dado que no se incluye ninguna opción -site, se supone que la aplicación es del sitio Web 1 (más conocido como Default Web Site en IIS). El cifrado se realiza utilizando el RsaProtectedConfigurationProvider especificado en la configuración del equipo.

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" -prov "RsaProtectedConfigurationProvider"

Cuando se requiere una página u otro recurso de ASP.NET en la aplicación, ASP.NET llama al proveedor de la sección de configuración protegida para cifrar la información que utilizarán ASP.NET y el código de la aplicación.

Nota:

Para descifrar y cifrar una sección del archivo Web.config, el proceso de ASP.NET debe tener el permiso para leer la información adecuada de la clave de cifrado. Para obtener más información, vea Importar y exportar contenedores de claves RSA con configuración protegida.

Descifrar una sección de configuración Web

Para descifrar el contenido del archivo de configuración, utilice la herramienta Aspnet_regiis.exe con el modificador -pd y el nombre del elemento de configuración que se va a descifrar. Utilice los modificadores –app y -site para identificar la aplicación para la que se va a descifrar el archivo Web.config. No es necesario especificar el modificador –prov para identificar el nombre del ProtectedConfigurationProvider, ya que esa información se lee desde el atributo configProtectionProvider de la sección de configuración protegida.

El comando siguiente descifra el elemento connectionStrings del archivo Web.config para la aplicación SampleApplication.

aspnet_regiis -pd "connectionStrings" -app "/SampleApplication"

Vea también

Tareas

Tutorial: Cifrar la información de configuración mediante la configuración protegida

Conceptos

Especificar un proveedor de configuración protegida

Otros recursos

Cifrar información de configuración mediante una configuración protegida