2009-02-11 13 views
11

Ahora tengo curiosidad por las posibilidades de almacenar/cargar configuraciones en .net. Por ejemplo, necesito almacenar el nombre de usuario/contraseña para diferentes db's y etc., también necesito almacenar algunas opciones, etc.Mejores prácticas: ¿cómo debo almacenar las configuraciones en C# (Formato/Tipo)?

Mi idea era crear la clase [Seriazable] y guardarla en el archivo ...

¿Qué puede sugerir? cuáles son las posibilidades en .net y etc.

+0

He hecho una pregunta similar [aquí] (http://stackoverflow.com/questions/117407/which-configuration-method-do-you-prefer-in-net-why), tal vez las respuestas ayuden .. . – spinodal

Respuesta

2

Si desea almacenar los ajustes de configuración de la aplicación , puede aprovechar el 'AppSettings' en el archivo App.Config o Web.Config dependiendo de si es una aplicación de Windows o web. Creo que la sintaxis para leer los valores de configuración es

string configValue = Configuration.AppSettings["ConfigValueName"]; 

El archivo de configuración se verá así

<configuration> 
    <appSettings> 
    <add key="ConfigValueName" value="ABC"/> 
    </appSettings> 
</configuration> 

con probablemente muchas otras cosas.

Si necesita almacenar información sobre los usuarios u otras entidades repetidas en su sistema, necesitará construir una base de datos y escribir código para persistir/leer datos a/desde la base de datos.

Puede hacer una clase serializable y serializarla automáticamente a XML o Binary, O puede usar una base de datos SQL. Existen muchas tecnologías .net para acceder a bases de datos con solo buscar ADO.net, LINQ y Entity Framework.

+0

Sí, esta podría ser una posibilidad. –

4

Bueno, la forma más común de almacenar y cargar configuraciones es usar algún tipo de datos XML, y hacer una clase [Serializable] y sacar la clase serializada a un archivo XML funcionaría , pero hay que tener las siguientes cosas en mente:

  1. usted no tendrá ningún control sobre los datos de entrada - porque el archivo XML puede ser editado fuera de su aplicación, es posible tener datos completamente sin sentido
  2. cargado
  3. Tendrá que tener valores predeterminados para cuando faltan nodos en el XML. Esto puede ser causado por ediciones manuales o cargando una versión anterior de su clase en una versión más nueva.
  4. Personalmente dudaría en almacenar contraseñas en un archivo de configuración en cualquier lugar, sin utilizar algún tipo de algoritmo de encriptación asimétrica. Si encontraba un programa que almacena mis contraseñas en texto plano en un archivo XML, dejaría de usar ese programa.
+0

Sí, todo estaría encriptado, eso es seguro;) –

1

Puede usar los archivos de recursos para obtener información menos confidencial. Para nombres de usuario/contraseñas, debe utilizar un archivo de texto eccriptizado, o hacer uso de CSPs.

17

.NET Framework proporciona algunos mecanismos para almacenar y cargar configuraciones de aplicaciones y/o usuarios. Consulte "MSDN: Using Settings in C#" para obtener información básica.

Para encriptar algunos datos sensibles dentro de sus archivos de configuración también puede usar algunas funciones estándar de .NET Framework. Para una breve introducción, consulte "Encrypting Configuration Information Using Protected Configuration" y "Encrypting Passwords in a .NET app.config File".

+0

El último artículo, "Encriptar contraseñas en ..." se ajusta a la ley exactamente para lo que necesito. Gracias. +1 – JMD

+0

+1 Por señalar el camino a la publicación de Jon Galloway. –

Cuestiones relacionadas