10
votes

Où devrais-je stocker la clé "activation" de mon application?

J'ai écrit une application et j'aimerais ajouter une clé d'enregistrement / numéro de série (je suis gros sur une inconvénient minimale - ALA n ° 4 à cet article d'Eric SLING ). Ma question concerne l'endroit où stocker "Activation" une fois que la candidature a été enregistrée. Si je comprends bien, j'ai un compromis entre stocker la clé dans un lieu public, où tous les utilisateurs peuvent le lire (mais qui nécessitent des droits d'administration pour enregistrer là) et stocker une activation par utilisateur (mais puis chaque utilisateur sur le l'ordinateur devra être activé indépendamment). Cela me donne deux choix:

  1. Certains utilisateurs, avec les droits de l'administrateur local, active le produit. L'activation est stockée dans HKLM, dans le dossier de fichiers de programme, ou quelque part ailleurs où tous les utilisateurs peuvent le lire, et le produit est activé pour tous les utilisateurs.
  2. Un utilisateur (avec ou sans droits d'administrateur) active le produit. L'activation est stockée quelque part centrée sur l'utilisateur (par utilisateur app.config, hkcu, etc.). Le plus est que l'utilisateur ne doit pas nécessairement être un administrateur. L'inconvénient est que s'il ya 6 utilisateurs qui utilisent l'ordinateur, chacun doit activer le produit. Ils peuvent chacun réutiliser le même série, mais ils doivent encore y entrer.

    Est-ce vraiment le compromis? Si c'est le cas, qu'est-ce que d'autres ont fait? En tant que développeur, je suis habitué aux gens d'être un administrateur local, mais dans le monde réel, je ne m'attends pas à ce que beaucoup de mes utilisateurs d'entreprises soient des administrateurs locaux, ce qui me fait pression sur l'option 2. Les ordinateurs ne sont pas communiqués souvent Assez que je ne devrais pas être inquiet?

    Encore une fois, je ne demande pas comment enregistrer physiquement un ordinateur - je ne suis pas inquiet à ce sujet. Je n'allais que la clé de contrôle de la clé fournie et donnez-le, car je veux être aussi invasif que possible.


0 commentaires

6 Réponses :


7
votes

Je recommanderais une solution qui ne nécessite pas de droits d'administration. Beaucoup d'utilisateurs, en particulier dans les environnements partagés, n'auront pas ces droits et ne pourront trouver personne avec eux avec eux.

En outre, allant de l'avant quelques années, je pense qu'il deviendra de plus en plus inhabituel d'avoir des droits d'administration sur l'ordinateur que vous utilisez, car la situation de sécurité s'améliore.


3 commentaires

Mais c'est sacrément ennuyeux d'enregistrer la même application et encore sur le même ordinateur pour différents utilisateurs! Je considère que cela soit un défaut dans la conception des applications.


Eh bien, une solution que nous avons utilisée consiste à placer les informations d'activation dans le registre des utilisateurs actuels, puis si les droits d'administration sont disponibles, mettez-le également dans la machine locale. Si les droits de l'administrateur sont disponibles, aucun des utilisateurs partagés sur la machine n'est trachant. Si aucun droit d'administrateur n'est disponible, chaque utilisateur est invité à s'activer une fois.


J'aime l'idée d'au moins le stocker dans HKCU, puis dans HKLM si l'utilisateur dispose de droits d'administrateur. Cela semble être l'inconvénient minimum - l'inscription ne doit pas Exiger Droits d'administration, mais en profitera d'eux s'ils sont là.



1
votes

Le registre semble être une solution correcte pour les logiciels d'affaires. Au moins à l'endroit où je travaillais, l'utilisateur ordinaire ne sera pas un administrateur de l'ordinateur local, chaque installation nécessitera un compte administrateur local. C'est une bonne chose que cela diminuera le mal de tête de votre personnel de soutien de personnes qui installent à peu près tout dans votre environnement informatique. Le commerce est bien entendu, l'utilisateur sera énervé qu'ils ne peuvent pas installer de choses ou doivent contacter le support pour le faire, mais Hey ... :)

Autres trucs:

  • USB / autre type de dongle (ala vieux 3Dmax)
  • Fichier texte unique en plain (ALA Logiciel GPS Garmin sur l'appareil mobile)
  • le coder / réécrire la clé dans votre binaire ou une partie de votre binaire (Est-ce que ce tour est devenu dans les vieux dos jours)
  • stockez-les dans votre propre DB via Web (ALA EverQuest / Autres Jeux MMORPG)
  • Clé locale DB (ALA MathLab Je pense)

0 commentaires

0
votes

Nous enregistrons notre code d'activation au registre pour l'utilisateur actuel (HKCU) que nous avons eu de très peu de problèmes avec cela. Nos clients fonctionnent sur tout, des ordinateurs domestiques aux clients minces sur les réseaux de coopération.

Si votre logiciel sera utilisé dans les écoles ou dans d'autres environnements éducatifs, vous devez fournir une autre méthode. Cela pourrait être aussi simple qu'une application d'enregistrement distincte qui enregistrera à l'activation pour tous les utilisateurs. Votre logiciel devrait faire deux recherches de registre, mais c'est un petit prix à payer.


0 commentaires

1
votes

Que diriez-vous d'utiliser le standard isolé pour votre application?

Vous aurez la possibilité de stocker ces informations sur un niveau de mashienène pour votre inscription, et les modifications de la configuration peuvent être persistées sur un niveau utilisateur.


2 commentaires

Pouvez-vous donner un exemple de comment je pourrais accomplir cela? Je ne connais pas le terme, je veux donc m'assurer que je comprends votre idée.


Vous pouvez trouver un exemple ici: msdn.microsoft.com/en-us/library/...



0
votes

En général, la plupart des ordinateurs sont utilisés par un seul utilisateur (ou plusieurs personnes utilisent toujours le même compte d'utilisateur). Donc, un stockage basé sur l'utilisateur fonctionnera la plupart du temps de toute façon.

Cependant, ce n'est pas soit / ni. Il y a des emplacements dossiers qui sont écrits par tous les utilisateurs, tels que le Dossier programdata . La clé est de rendre le fichier lisible / inscriptible par tout le monde afin que vous puissiez vérifier le contenu quel que soit l'utilisateur.

Licence de DeLoyLX Le fait pour les données de licence non sécurisées afin qu'elle puisse être utilisée par Plusieurs utilisateurs sans administrateur accordent explicitement une autorisation.


0 commentaires

0
votes

Vous devriez être cohérent. Si les droits de l'administrateur étaient tenus d'installer le programme, il n'est pas hors de ligne de nécessiter des droits d'administrateur de l'enregistrer. De même si vous avez réussi à l'installer sans droits d'administrateur, enregistrez-le sans aussi.

Si vous installez et enregistrez-vous en une étape, cela ne sera pas un problème.


0 commentaires