2008-09-10 9 views
14

Estoy desarrollando una aplicación web que requiere un nombre de usuario y contraseña para ser almacenada en la web.Config, también se refiere a algunas URL que serán solicitadas por la aplicación web y nunca por el cliente.Encriptación de configuración de aplicaciones en web.config

Sé que el .Net Framework no permitirá que se sirva un archivo web.config, sin embargo, todavía creo que es una mala práctica dejar este tipo de información en texto sin formato.

Todo lo que he leído hasta ahora requiere que use un modificador de línea de comando o que almacene valores en el registro del servidor. No tengo acceso a ninguno de estos, ya que el host está en línea y solo tengo acceso FTP y Panel de control (timón).

¿Alguien puede recomendar alguna buena DLL libre de cifrado o métodos que pueda usar? ¡Prefiero no desarrollar el mío!

Gracias por los comentarios hasta ahora, pero no puedo emitir comandos y no puedo editar el registro. Va a tener que ser un utilitario/ayudante de cifrado, ¡pero solo me pregunto cuál!

Respuesta

19

EDITAR de ScottGu:
Si no puede utilizar asp utilidad, puede encriptar el archivo de configuración usando el método SectionInformation.ProtectSection.

Muestra de CodeProject:

Encryption of Connection Strings inside the Web.config in ASP.Net 2.0

+0

Aku, Desafortunadamente esos enlaces se refieren a la línea de comandos, no puedo usarlos ya que no tenemos acceso directo a la línea de comando. Si tuviera que encriptarlo en mi propia máquina y luego implementarlo en el servidor, no funcionará ya que la clave no existirá/será diferente – Mauro

+0

Se refiere a [Encriptar secciones de configuración personalizadas] (http: // odetocode. com/blogs/scott/archive/2006/01/08/encrypting-custom-configuration-sections.aspx). Es un ejemplo simple, el artículo relacionado de MSDN es [aquí] (https://msdn.microsoft.com/en-us/library/zhhddkxy.aspx). – Matt

0

Mientras que en la primera vista parece ser sencillo, hay un par de obstáculos que me encontré.

Así que estoy proporcionando pasos que funcionó bien para mí (para cifrar los appsettings sección) utilizando el proveedor de cifrado por defecto:

Cifrar secciones en el web.config:

  1. Abiertas Consola de comandos de administración (ejecuta como administrador!). El símbolo del sistema estará en C:, que se supone para los pasos a continuación.
  2. cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319, en 32 bits sistemas Windows utilizan Framework en lugar de Framework64
  3. cambio a D:
  4. cd D:\Apps\myApp
  5. c:aspnet_regiis -pef appConfig .

Debe ver este mensaje:

Microsoft (R) ASP.NET RegIIS versión 4.0.30319.0 Utilidad de administración para instalar y desinstalar ASP.NET en la máquina local. Copyright (C) Microsoft Corporation. Todos los derechos reservados. Sección de configuración de cifrado ... ¡Ha tenido éxito!

También puede descifrar secciones en el web.config: Estos son los mismos pasos, pero con la opción de -pdf en lugar de -pef para aspnet_regiis.

Cuestiones relacionadas