IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Enregistrer les utilisateurs d'un programme


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut Enregistrer les utilisateurs d'un programme
    Bonjour,

    Notre client distribue gratuitement le programme que nous avons conçu pour lui. Toutefois, aimerait identifier les utilisateurs du logiciel (nom, prénom, organisme, e-mail, teléphone) et donc "obliger" les utilisateurs à se déclarer afin de pouvoir utiliser le produit.

    Sachant que :

    • bien que certaines fonctionnalités annexes du programme (genre googlemap ou dialogue avec un Web service) nécessitent une connexion Web, l'essentiel de l'application fonctionne hors connexion internet et doit continuer à opérer ainsi (avec ou sans connexion internet).
    • le client devrait avoir la possibilité de travailler quelques jours après la première utilisation en attendant que l'enregistrement soit réalisé.
    • le logiciel est parfois installé sur un disque réseau et lancé par plusieurs utilisateurs (un utilisateur peut avoir un ou 2 PC).
    • que le traitement des demandes de clés d'activation n'a pas besoin d'être automatisée et que demandes et réponses peuvent être faites par e-mail.
    • il n'est pas grave qu'un utilisateur puisse contourner le mécanisme de protection par un changement de date du PC (à fortiori en faisant du "hacking" avancé). Par contre, il faudrait éviter qu'une simple réinstallation ou l'effacement d'un fichier permettent de revenir à la période initiale où on peut utiliser le logiciel sans clé d'activation.

    Quelle serait votre approche ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    récupérer l'id du processeur (quasiment unique à priori) sous forme hexadecimale (0 à F sur 16 chars je crois)
    le hasher si tu veux une autre forme

    ensuite, soit il a accès à internet sur le poste et tu fais une fenetre de registration qui se connecte à ton serveur, l'utilisateur renseigne ce que tu lui demandes et la clé part avec, soit il envoie un mail avec les même détails et la clé

    sur le serveur tu as une méthode qui génère une clé à partir d'un algo, même maison
    si c'est via la fenetre de registration tu récupères la clé de retour, si c'est par mail il faut que l'utilisateur l'entre dans le soft


    après pour ce qui est de la protection, c'est moins simple sans l'accès à internet, peut etre en multipliant les enregistrements, genre plusieurs fichiers (appdata et autres) et une clé dans la base de registre ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 262
    Par défaut
    après pour ce qui est de la protection, c'est moins simple sans l'accès à internet, peut etre en multipliant les enregistrements, genre plusieurs fichiers (appdata et autres) et une clé dans la base de registre ...
    Moi j'ai déjà fais cette méthode et ça marche très bien.
    Fichier caché dans le système, avec une clé de registre.

  4. #4
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Merci pour vos réponses.
    Fichier caché dans le système, avec une clé de registre.
    Fichier caché : je retiens .
    Fichier caché dans le système : certains utilisateurs ont des droits limités qui font qu'on ne peut pas "bidouiller" dans le système.
    Clé de registre : Savez-vous quelle rubrique utiliser, en évitant celles qui seraient protégées (accessibles seulement avec droits adadministrateur).

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    le HKEY_CURRENT_USER devrait faire l'affaire non?

    Autrement il y aussi la possibilité de stocker ceci dans le dossier Application Data de l'utilisateur (C:\Documents and Settings\UserName\Application Data\NomDeTonApplication). Il ne devrait pas avoir de problème de droit dessus, c'est nativement un dossier caché. Et tu peux ainsi sauvegarder d'autre fichier de configuration (pour la taille des fenêtres & Cie).

    Pas besoin de réinventer la roue !

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Sinople -> Merci de ces éléments complémentaires.

    Je pense donc procéder ainsi.

    1) A la première utilisation du programe,
    Au lancement, s'ouvre une forme de registration qui demande des info à l'utilisateur, récupère l'Id du processeur et/ou la clé mac et formate le tout pour créer la demande de registration.
    (En cas de problème, un bouton permetttra de relancer la forme de registration pour refaire la demande).

    La demande sera envoyée par mail dans un premier temps (avec dans un deuxiéme temps un envoi direct par internet).
    On crée dans le dossier Application Data de l'utilisateur un fichier de Contrôle (C:\Documents and Settings\UserName\Application Data\Nom_De_L_Application). A sa création, ce fichier contiendra la date de première utilisation cryptée et, par la suite, il accueillira la clé d'activation.

    2) Quand on lance le logiciel, on teste le fichier de contrôle.
    A) Le fichier de contrôle n'existe pas :
    il s'agit de la première utilisation - Cas 1) ci-dessus.

    B) Le fichier de contrôle ne contient pas encore la clé d'activation (ou si la clé est incorrecte), on propose à l'utilisateur de la fournir.
    - Si l'utilisateur ne fournit pas de clé et qu'on est encore dans la période pendant laquelle la clé est reste facultative, le programme continue normalement.
    - Si l'utilisateur ne fournit pas de clé et qu'on est l'on est hors de la période pendant laquelle la clé était encore facultative, le programme stoppe
    - si l'utilisateur fournit une clé correcte (correspondant à un cryptage de Id processeur et/ou de la clé Mac), on l'enregistre dans le fichier de Contrôle (et on se retrouve dans le cas B) si la clé est incorrecte ou dans le cas C) si elle est ok.
    C) Le fichier de contrôle contient une clé d'activation correcte
    Le programme continue normalement.

    Pour un peu plus de sécurité
    Le fichier de contrôle sera doublé par la base de registre sous la rubrique HKEY_CURRENT_USER/Software/Nom_De_L_Application
    Et aussi, tant que la clé d'activation n'est pas fournie, enregistrer la date du dernier lancement pour détecter les éventuels changements de date qui opéreraient des "retour dans le passé".

Discussions similaires

  1. Enregistrer les sons de notre programme
    Par paulolol dans le forum VB.NET
    Réponses: 4
    Dernier message: 06/05/2015, 19h07
  2. Réponses: 0
    Dernier message: 05/08/2010, 21h52
  3. [MySQL] enregistrer un graphique pour tous les utilisateurs
    Par majong dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/07/2008, 18h04
  4. Réponses: 7
    Dernier message: 10/11/2007, 17h04
  5. Réponses: 6
    Dernier message: 08/08/2006, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo