¿Cómo puedo proteger mi cadena de conexión? Quiero utilizar Entity framework 4.1 (primer código) en C#, pero es importante para mí que otras personas no puedan ver mi Connection String.Encriptar ConnectionString en el marco de entidad (primer código)
Respuesta
No hay diferencia entre utilizar EF o cualquier otro ORM, puede usar la forma estándar de encriptar la conexión de cadena y descifrarla antes de llamar a la inicialización de EF. El contexto se producirá automáticamente.
Puede detener las llamadas a la cadena de conexión de la clase de contexto (DBContext o IdentityDbContext si utilizando ASPNET Identidad) y modificar la conexión cuerda devuelta En mi caso, en lugar de encriptar toda la cadena de conexión, elegí encriptar solo la contraseña. Puede usar el mismo enfoque para encriptar toda la cadena de conexión.
Nota: La función (StringCipher.Decrypt) utiliza para cifrar y descifrar vino de este hilo ->https://stackoverflow.com/a/1344255/1390025
Aquí es donde se arresta a la llamada a la cadena de conexión
public YourDB()
: base(GetSqlConnection("DefaultConnection"))
{}
En lo anterior escenario Estoy obteniendo la cadena de conexión de app.config o web.config. Sin embargo, según su solicitud, puede encriptar toda la cadena de conexión y como en el siguiente ejemplo;
public YourDB()
: base(StringCipher.Decrypt("your-encrypted-connection-string", "passphrase-used-to-encrypt"))
{}
En el escenario en el que sólo se encripta la contraseña, la función a continuación reemplaza la contraseña cifrada con texto sin formato y devuelve la cadena de conexión;
public static string GetSqlConnection(string connectionStringName = "DefaultConnection")
{
// optionally defaults to "DefaultConnection" if no connection string name is inputted
string connectionString = ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
string passPhrase = "passphrase-used-to-encrypt";
// decrypt password
string password = get_prase_after_word(connectionString, "password=", ";");
connectionString = connectionString.Replace(password, StringCipher.Decrypt(password, passPhrase));
return connectionString;
}
La función que se utiliza para analizar la contraseña de la cadena de conexión
public static string get_prase_after_word(string search_string_in, string word_before_in, string word_after_in)
{
int myStartPos = 0;
string myWorkString = "";
// get position where phrase "word_before_in" ends
if (!string.IsNullOrEmpty(word_before_in))
{
myStartPos = search_string_in.ToLower().IndexOf(word_before_in) + word_before_in.Length;
// extract remaining text
myWorkString = search_string_in.Substring(myStartPos, search_string_in.Length - myStartPos).Trim();
if (!string.IsNullOrEmpty(word_after_in))
{
// get position where phrase starts in the working string
myWorkString = myWorkString.Substring(0, myWorkString.IndexOf(word_after_in)).Trim();
}
}
else
{
myWorkString = string.Empty;
}
return myWorkString.Trim();
}
- 1. entidad Código Marco relaciones de primer nivel
- 2. Encriptar servicios de aplicación ConnectionString
- 3. Entidad marco de código primer nulo clave externa
- 4. Edición manual de la base de datos en el primer marco de entidad de código
- 5. Código Marco de la entidad en primer lugar, no está creando la base de datos
- 6. Código Primera entidad cadena de conexión del marco
- 7. distintas en el marco Entidad
- 8. entidad Código Marco primera actualización del trozo por Entidad
- 9. entidad Código Marco Primera Lazy Loading
- 10. referencia nula en la Entidad Migración Marco
- 11. tipo complejo en el marco de entidad
- 12. Procedimientos almacenados en el marco de entidad
- 13. Unión en el marco de la entidad
- 14. Ejecutando sql en el marco de entidad?
- 15. dependencia circular en el marco de entidad
- 16. Entidad marco 5.0 de código primero con MySQL en WPF
- 17. Entidad marco genérico
- 18. marco Entidad - conseguir entidad por su nombre
- 19. usando hashset en el marco de la entidad
- 20. Especificación del código del marco de la entidad de clave externa Primero, Api fluido
- 21. Entidad Proxy Marco
- 22. Entidad marco POCO
- 23. ¿Cómo es el rendimiento del marco de entidad 4 frente al marco de entidad 3.5?
- 24. Marco de la entidad y el problema
- 25. Relación uno a uno, nombre de columna de clave diferente, Marco de entidad, primer enfoque de código
- 26. entidad marco 4.1 código primero permiso CREATE DATABASE denegado en la base de datos 'master'
- 27. Entidad marco de resultados de consulta duplicados
- 28. Marco de la entidad de referencia circular
- 29. Cadena de conexión de SQL Server 2008 para el código de entidad marco 4.1 primero
- 30. entidad Código Marco Primera relación uno a uno
tnkx mucho por su ayuda y enlaces –