2009-07-12 14 views
9

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?

  1. 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.
  2. 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.

Respuesta

7

Recomendaría una solución que no requiera derechos de administrador. Muchos usuarios, especialmente en entornos compartidos, no tendrán esos derechos y no podrán encontrar a nadie con ellos convenientemente.

Además, en los próximos años, creo que será cada vez más inusual tener derechos de administrador en la computadora que está utilizando, ya que la situación de seguridad mejora.

+0

¡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. –

+5

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. –

+1

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

1

El registro parece ser una buena solución para el software empresarial. Al menos en donde solía trabajar, el usuario habitual no será un administrador local de la computadora, por lo que cada instalación requerirá una cuenta de administrador local. Esto es bueno, ya que reducirá el dolor de cabeza de su personal de soporte de las personas que instalan casi todo en su entorno informático comercial. La compensación es, por supuesto, que el usuario se enojará porque no puede instalar cosas o tiene que contactar al soporte para hacerlo, pero bueno ...:)

otras materias:

  • USB/otro tipo de dispositivo de seguridad (ala antigua 3dmax)
  • archivo de texto simple y llano (ala software de Garmin GPS en el dispositivo móvil)
  • codificarlos/reescriba la clave en su código binario o parte de su código binario (este truco volvió al antiguo DOS días)
  • Almacénelos en su propio db a través de la web (según EverQu EST/otros juegos MMORPG)
  • db clave local (Ala MathLab creo)
0

Ahorramos nuestro código de activación para el registro del usuario actual (HKCU) que han tenido muy pocos problemas con él. Nuestros clientes utilizan todo, desde computadoras hogareñas hasta clientes ligeros en redes cooperativas.

Si su software se utilizará en escuelas u otros entornos educativos, debe proporcionar otro método. Podría ser tan simple como una aplicación de registro separada que guardará la activación para todos los usuarios. Su software tendría que hacer dos búsquedas de registro, pero ese es un pequeño precio a pagar.

1

¿Qué le parece usar el almacenamiento aislado para su aplicación?

Tendrá la capacidad de almacenar esta información en un nivel de mashiene para su registro, y los cambios de configuración pueden persistir en un nivel de usuario.

+0

¿Puedes dar un ejemplo de cómo podría lograr esto? No estoy familiarizado con el término, así que quiero asegurarme de que entiendo tu idea. – SqlRyan

+0

Puede encontrar un ejemplo aquí: http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefilestream(VS.71).aspx –

+0

Editar: Este es mejor: http://msdn.microsoft.com/en-us/library/bdts8hk0.aspx –

0

En general, la mayoría de las computadoras son utilizadas por un solo usuario (o varias personas que todavía usan la misma cuenta de usuario). Por lo tanto, un almacenamiento basado en el usuario funcionará la mayor parte del tiempo de todos modos.

Sin embargo, no es/o tampoco. Hay ubicaciones de carpeta que pueden escribir todos los usuarios, como la carpeta ProgramData. La clave es hacer que el archivo sea legible/escribible por Todos para que pueda verificar el contenido independientemente del usuario.

DeployLX Licensing hace esto para los datos de licencia no segura para que pueda ser utilizada por varios usuarios sin que un administrador otorgue permiso explícitamente.

0

Debe ser consecuente. Si se requirieron derechos de administrador para instalar el programa, no está fuera de línea exigir derechos de administrador para registrarlo. Del mismo modo, si de alguna manera logras instalarlo sin derechos de administrador, regístralo también.

Si instala y se registra en un solo paso, esto no será un problema.

Cuestiones relacionadas