2011-04-02 15 views
21

Quiero encriptar la contraseña en la cadena de conexión. Cuando hago una conexión a DB, la cadena de conexión se almacena abiertamente en App.config y necesito encontrar la manera de mantener cifrada solo la contraseña.Cifrar contraseña en App.config

+0

Por favor, compruebe este enlace para encriptar la contraseña en el archivo de configuración: http://weblogs.asp.net/jongalloway/encrypting-passwords-in-a-net-app-config-file –

Respuesta

20

permite decir que esto es la cadena de conexión:

<connectionStrings> 
    <add name="cs" connectionString="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=XXSDFASFDKSFJDKLJFDWERIODFSDFHSDJHKJNFJKSD;"/> 
</connectionStrings> 

entonces usted puede hacer algo como esto:

string myCs = System.Configuration.ConfigurationManager.ConnectionStrings["cs"].ConnectionString; 

System.Data.SqlClient.SqlConnectionStringBuilder csb = new System.Data.SqlClient.SqlConnectionStringBuilder(myCs); 
csb.Password = EncDecHelper.Decrypt(csb.Password); 
myCs = csb.ToString(); 

Usted puede escribir EncDecHelper.Decrypt mediante el uso de muestras de aquí: Encrypt and decrypt a string

+0

Pero como entiendo, cualquiera puede descifrarlo de nuevo ... Además, solo quiero cifrar la contraseña. – NDeveloper

+0

@NDeveloper: cambié mi respuesta, eche un vistazo. – HABJAN

+0

Gracias, esto es exactamente lo que necesito. – NDeveloper

0

Quizás descifre la cadena de conexión de su configuración antes de cargar la aplicación.

16

Utilice la sección de configuración connectionStrings y cifre toda la sección, en lugar de solo la contraseña.

Esto es más seguro ya que la configuración de su aplicación ya no tendrá nombres de servidor y nombres de usuario en texto sin formato.

Hay documentos instructivos para cifrar secciones de configuración en MSDN para RSA o DPAPI.

+0

¿Hay alguna manera de hacerlo funcionar para un archivo App.config en lugar de solo Web.config? ¡Gracias por la respuesta! +1 –

+0

@ One-One http://stackoverflow.com/questions/5803188/encrypting-connectionstrings-section-utility-for-app-config – Oded

+0

"Este contenido está desactualizado y ya no se mantiene". ¿Debería ser usado? @Oded – NoReceipt4Panda

Cuestiones relacionadas