encrypt aspnet_regiis .net asp.net encryption web-config

.net - aspnet_regiis - Cifrado de la cadena de conexión en web.config



encrypt web.config aspnet_regiis (7)

¿Cómo podemos cifrar la sección de cadena de conexión en el archivo web.config?


Ejecute esto en Comando: aspnet_regiis.exe -pef "connectionStrings" "pathToWebConfig"

o, si desea que esto se ejecute programáticamente, puede crear un Proceso:

string fileName = @"C:/Windows/Microsoft.NET/Framework/v4.0.30319/aspnet_regiis.exe"; if (8 == IntPtr.Size || (!string.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))) fileName = @"C:/Windows/Microsoft.NET/Framework64/v4.0.30319/aspnet_regiis.exe"; string arguments = $"-pef /"connectionStrings/" /"{application.Path}/""; using (Process process = new Process()) { process.EnableRaisingEvents = true; process.StartInfo = new ProcessStartInfo { FileName = exeName, Arguments = arguments, UseShellExecute = false, RedirectStandardOutput = true, RedirectStandardError = true, CreateNoWindow = true }; process.Start(); processOutput.Output = process.StandardOutput.ReadToEnd(); bool exited = process.WaitForExit(timeoutMilliseconds); if (exited) { processOutput.ExitCode = process.ExitCode; } }


He creado una utilidad en formularios de Windows con código fuente. Descargar archivo desde aquí: File

  1. Ejecute el archivo ejecutable desde la carpeta de depuración (Ejecutar como administrador)
  2. Explore el archivo de configuración
  3. Estás listo

Nota: compruebe si esta carpeta existe en su computadora: C: / Windows / Microsoft.NET / Framework / v4.0.30319 /


La encriptación es útil para dar seguridad a la aplicación. Encuentre los siguientes pasos para encriptar web.config.

  1. Abrir símbolo del sistema con privilegios de administrador
  2. En el símbolo del sistema, ingrese
  3. cd C: / Windows / Microsoft.NET / Framework / v4.0.30319
  4. En caso de que su configuración web esté ubicada en la ruta del directorio "D: / Articles / EncryptWebConfig", ingrese lo siguiente para encriptar ConnectionString:
  5. ASPNET_REGIIS -pef "connectionStrings" "D: / Articles / EncryptWebConfig

He usado otra cosa para más seguridad. En mi Web.config he agregado el siguiente código.

<httpProtocol> <customHeaders> <add name="x-Frame-Option" value="Deny or SEMEORGIN" /> <remove name="Server" /> <remove name="X-AspNet-Version" /> <remove name="X-AspNetMvc-Version" /> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol>


Para ahorrar tener que visitar enlaces externos, en C: / Windows / Microsoft.NET / Framework / v4.0.30319 (para .NET 4 / 4.5)

aspnet_regiis.exe -pe "connectionStrings" -app "/YourWebSiteName" -prov "DataProtectionConfigurationProvider"

Para descifrar la sección connectionStrings con esta herramienta, puede especificar el siguiente comando en la herramienta aspnet_iisreg.exe.

aspnet_regiis.exe -pd "connectionStrings" -app "/YouWebSiteName"


Rahul, convertir una cadena de cadena ASCII a base64 no es una encriptación, que es lo que sugiere su primer enlace. Podemos convertir fácilmente base64 a ASCII.

Usar configsection.protectSection () con una clave RSA es un cifrado adecuado que está disponible para las secciones del archivo Web.config.

Consulte este enlace: http://www.beansoftware.com/ASP.NET-Tutorials/Encrypting-Connection-String.aspx

Tenga en cuenta que no podemos cifrar el archivo Web.config en un entorno de alojamiento compartido donde el nivel de confianza está configurado en confianza media.