password_hash password metodos encriptar encriptacion ejemplo c# wpf windows winforms registry

c# - password - metodos de encriptacion php



¿Cómo decidir dónde almacenar el estado por usuario? ¿Registro? ¿Datos de aplicación? Almacenamiento aislado? (4)

¿Cuándo debería usarse el Registro de Windows para el estado por usuario, y cuándo debemos usar el sistema de archivos, en particular la carpeta de Datos de Aplicación del usuario? (por ejemplo, C: / Users / USERNAME / AppData). ¿Dónde entra el almacenamiento aislado?

¿Existe una regla bastante firme, o es simplemente algo borroso, como "usar el registro hasta que se convierta en demasiados datos para almacenar en el registro". o "usa lo que quieras usar".

¿Hay requisitos de logotipo de Windows que afectan la decisión?

Si uso el directorio AppData, ¿cómo elijo entre Local, Roaming y LocalLow?

Edición: Acabo de notar estas preguntas similares:

Voy a resumir las respuestas.




No sé si hay una regla firme, pero una cosa a considerar es que el registro se tramita, es más seguro para las operaciones de lectura / escritura concurrentes. Por lo tanto, si sus datos de usuario pueden estar escritos por varios subprocesos en tiempo de ejecución (o si tiene varios exe en el paquete de su producto), considere usar el registro.

Historial: Una razón (como lo escuché) de que MS pasó de los archivos .ini al registro fue precisamente para tratar de resolver el problema de acceso concurrente.

.Net (una especie de) volvió a los archivos .ini en forma de archivos xml .config, sin embargo, esos archivos de configuración no deben escribirse en tiempo de ejecución (o al menos no si existe la posibilidad de escritores / lectores concurrentes) .

Más información: http://blogs.msdn.com/oldnewthing/archive/2007/11/26/6523907.aspx


Si tiene una pequeña cantidad de pares clave / valor y los valores no son grandes, el registro es excelente, y no le importa la implementación de xcopy, entonces use el registro (sé que esto no es exacto, pero generalmente es obvio cuando se trabaja con el registro se convierte en un dolor).

Si desea la implementación de xcopy, los datos deben estar en la misma carpeta que el programa, obviamente, pero el programa puede estar en algún lugar debajo de la carpeta AppData, no tiene que estar en "archivos de programa".

Use almacenamiento aislado solo cuando lo necesite o tenga que usarlo, por ejemplo, ClickOnce.

De lo contrario, use AppData / Roaming, use Local o LocalLow solo si tiene una buena razón.

EDITAR: Aquí está la diferencia entre Roaming, Local y LocalLow:

Windows tiene una característica poco conocida llamada "perfiles móviles", la idea general es que en un entorno corporativo con esta característica habilitada, cualquier usuario puede usar cualquier computadora.

Cuando un usuario inicia sesión, su configuración privada se descarga desde el servidor y cuando se desconecta, su configuración se vuelve a cargar en el servidor (el proceso real es más complicado, obviamente).

Los archivos en la carpeta "Roaming" del usuario en Vista o "Datos de la aplicación" en XP se mueven con el usuario, por lo que cualquier configuración y datos deben almacenarse allí.

Los archivos bajo "Local" y "LocalLow" en Vista y "Configuración local" en XP no lo hacen, por lo que es un buen lugar para archivos temporales, cosas que están vinculadas a la computadora específica o datos que se pueden recalcular.

En Vista, como parte de las nuevas características de seguridad que todos conocemos y amamos, puede tener programas ejecutándose en "modo de baja integridad" (por ejemplo, IE en modo protegido), esos programas se ejecutan con privilegios reducidos y no pueden acceder a los archivos en el perfil del usuario, excepto los archivos en la carpeta "LocalLow".

Entonces, en conclusión, los archivos almacenados en "LocalLow" son intrínsecamente inseguros y es probable que los archivos en "Local" / "Configuración local" no estén disponibles en algunas compañías grandes, así que a menos que tenga una buena razón y sepa exactamente lo que está haciendo, vaya con "Roaming" / "Datos de la aplicación".