Uno de los objetivos de diseño de Windows 7 es aislar los datos y las aplicaciones de los usuarios. Esto es para mejorar la privacidad, la seguridad y la personalización. De hecho, los usuarios estándar en Win 7 no pueden cambiar los datos de otros usuarios.
La enumeración System.Environment.SpecialFolder devuelve los lugares estándar para almacenar los datos de la aplicación. Tenga en cuenta que no todas las carpetas son legibles o editables por todos los usuarios. Por ejemplo, CommonApplicationData es legible por todos los usuarios, pero solo puede escribirlo quien tenga una política adecuada, como Administradores.
Si absolutamente debe tener datos compartidos entre los usuarios, un administrador o uno con permiso debe instalarlo en una ubicación compartida. Si los usuarios necesitan actualizar estos datos, deben copiarlos en una ubicación en la que puedan escribir, como ApplicationData, y actualizar sus propias copias privadas. Esta copia privada no puede ser modificada por otros usuarios. No debe instalar datos en ubicaciones compartidas a menos que su aplicación no funcione de otro modo.
De hecho, en Win7 debe instalar todas las aplicaciones y datos en la aplicación del usuario y en las carpetas de datos, no en las ubicaciones compartidas. Si varios usuarios instalan la aplicación, cada usuario obtendrá su propia copia de la aplicación y los datos. Esto es casi siempre lo que quieres. Si varios usuarios ejecutan una aplicación o un juego, no querrás que un usuario cambie a los demás. Si varios usuarios realmente necesitan el mismo cambio, permita que cada usuario actualice su copia privada cuando la necesite. Si la cuenta de un usuario es pirateada o se vuelve malvada, no querrás que destruya las aplicaciones y los datos de los demás.
También tenga en cuenta que en Win7, los usuarios pueden iniciar sesión remotamente en una máquina, por lo que no es una buena idea almacenar datos específicos de la máquina, como resoluciones de pantalla o direcciones IP, por usuario. En cambio, verifique esto cada vez que se ejecute su aplicación.
¿Podría proporcionar más información acerca de estos datos? ¿Se escribe una vez durante la instalación y nunca cambia después? ¿Podría cambiar en cualquier momento que se ejecute su aplicación? – reuben
@Reuben: actualmente se crea inicialmente en la primera ejecución y se actualiza con poca frecuencia, probablemente solo unas pocas veces. Podría inicializarse en la instalación, pero debería actualizarse más tarde. –
¿Por qué necesita ser independiente del usuario? ¿Por qué cada usuario que tenga su propia copia será malo? –