2009-07-02 16 views

Respuesta

6

Creo que hay dos maneras de hacer esto:

utilizando aspnet_regiis usando DPAPI o RSA o doing it programmatically.

La forma programática puede ser útil, especialmente si también desea cifrar app.config.

Según mis experiencias de uso de esto, si escribe una sección de configuración personalizada, debe instalar la DLL que contiene las clases para esa sección en el GAC. Para un proyecto en el que estaba trabajando básicamente escribí el siguiente enfoque:

  • Copie la DLL de configuración a GAC.
  • Realiza el cifrado.
  • Eliminar la DLL de configuración de GAC.

Lo más probable es que solo cifre las cadenas de conexión, entonces esto no será un problema. También debe tener en cuenta si desea encriptar a nivel de máquina o a una cuenta de usuario específica; ambas opciones pueden ser útiles dependiendo de su escenario. Para simplificar, me apegué a la encriptación de toda la máquina. Los enlaces que he proporcionado explican los méritos de ambos enfoques.

+0

¡Sí @Richard haciendo que la máquina sea más ancha hace que sea más fácil! – TheVillageIdiot

+0

Hola, RichardOD, mi pregunta es ... si lo haces programáticamente. ¿Cuándo debo cifrar y descifrar el archivo webconfig? Verifique mi publicación en este enlace -> http://stackoverflow.com/questions/25614737/encrypt-decrypt-web-config – Haminteu

+0

¿De qué sirve hacer esto? Cualquiera puede descifrar fácilmente las cadenas de conexión con la misma facilidad con la que podemos encriptarlo. – markthewizard1234

4
+0

El blog menciona que el administrador de IIS le permite a uno editar secciones encriptadas. Pero IIS 7 en adelante esto no es verdad. El tiempo de ejecución puede descifrar el encriptado web.config pero no el administrador IIS –

+0

Gracias @irwin muy buen recurso para seguir estudiando el problema. – TheVillageIdiot

2

Utilice la herramienta aspnet_regiis en el directorio de marco:

         -- CONFIGURATION ENCRYPTION OPTIONS -- 

pe section   Encrypt the configuration section. Optional arguments: 
         [-prov provider] Use this provider to encrypt. 
         [-app virtual-path] Encrypt at this virtual path. Virtual path must begin with a forward slash. 
         If it is '/', then it refers to the root of the site. If -app is not specified, the root 
         web.config will be encrypted. 
         [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the 
         default web site will be used. 
         [-location sub-path] Location sub path. 
         [-pkm] Encrypt/decrypt the machine.config instead of web.config. 

pd section   Decrypt the configuration section. Optional arguments: 
         [-app virtual-path] Decrypt at this virtual path. Virtual path must begin with a forward slash. 
         If it is '/', then it refers to the root of the site. If -app is not specified, the root 
         web.config will be decrypted. 
         [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the 
         default web site will be used. 
         [-location sub-path] Location sub path. 
         [-pkm] Encrypt/decrypt the machine.config instead of web.config. 
0

Utilice la herramienta de línea de comandos aspnet_regiis.exe

También puede cifrar y descifrar secciones en el archivo Web.config utilizando la herramienta de línea de comandos aspnet_regiis.exe, que se puede encontrar en el directorio% WINDOWSDIR% \ Microsoft.Net \ Framework \ version.

Mira aquí: http://aspnet.4guysfromrolla.com/articles/021506-1.aspx.

+1

Si bien este enlace puede responder la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. –

+0

Respuesta editada con su sugerencia. Gracias. – jinsungy

7

Éstos son los comandos para cifrar el archivo web.config sin necesidad de programación ...

para el cifrado

aspnet_regiis -pef "Section" "Path exluding web.config" 

para el descifrado

aspnet_regiis -pdf "Section" "Path exluding web.config" 

Desde este comando puede cifrar o descifrar toda la sección.

+1

No coloque un "\" al final del camino tampoco. No funcionó para mí hasta que eliminé eso. – user2444499

+0

Y asegúrese de ejecutar con privilegios de administrador. – marsze