He escrito una solicitud y me gustaría agregarle una clave de registro/número de serie (soy grande en inconviniencia mínima - ala # 4 en this Eric Sink article). Mi pregunta es sobre dónde almacenar la "activación" una vez que la aplicación ha sido registrada. Según tengo entendido, tengo una compensación entre almacenar la llave en un lugar público, donde todos los usuarios pueden leerla (pero que requiere derechos de administrador para guardarla) y almacenar una activación por usuario (pero luego cada usuario en el la computadora tendrá que activarse de forma independiente). Eso me da dos opciones:¿Dónde debería guardar la clave de "activación" de mi aplicación?
- Algunos usuarios, con derechos de administrador local, activan el producto. La activación se almacena en HKLM, en la carpeta de archivos del programa o en otro lugar donde todos los usuarios pueden leerla, y el producto se activa para todos los usuarios.
- Un usuario (con o sin derechos de administrador) activa el producto. La activación se almacena en algún lugar centrada en el usuario (app.config, HKCU, etc.) por usuario. La ventaja es que el usuario no tiene que ser un administrador. El inconveniente es que si hay 6 usuarios que usan la computadora, cada uno tiene que activar el producto. Pueden reutilizar el mismo serial, pero aún tienen que ingresarlo.
¿Es esto realmente la compensación? Si es así, ¿qué han hecho otros? Como desarrollador, estoy acostumbrado a que las personas sean administradoras locales, pero en el mundo real, no espero que muchos de mis usuarios corporativos sean administradores locales, lo que me hace inclinarme hacia la opción 2. ¿Las computadoras no se comparten a menudo? lo suficiente como para no estar preocupado?
Una vez más, no estoy preguntando cómo registrar físicamente una computadora, no me preocupa. Solo voy a verificar la clave proporcionada y dar el visto bueno, ya que quiero ser lo menos invasivo posible.
¡Pero es muy molesto registrar la misma aplicación una y otra vez en la misma computadora para diferentes usuarios! Considero que esto es un defecto en el diseño de aplicaciones. –
Bueno, una solución que hemos utilizado es poner la información de activación en el registro de usuarios actual, luego, si los derechos de administrador están disponibles, colóquelos en la máquina local también. Si los derechos de administrador están disponibles, ninguno de los usuarios compartidos en el equipo tiene problemas. Si no hay derechos de administrador disponibles, se solicita a cada usuario que se active una vez. –
Me gusta la idea de al menos almacenarlo en HKCU, y luego también en HKLM si el usuario tiene derechos de administrador. Parece el inconveniente mínimo: el registro no * requiere * derechos de administrador, pero se aprovechará de ellos si están allí. – SqlRyan