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

Développement Windows Discussion :

Gestion de licences d'une application


Sujet :

Développement Windows

  1. #1
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut Gestion de licences d'une application
    Bonjour
    On m'a chargé de mettre en place (études et implémentation) une politique de gestion de licences d'une application qu'on a développé en C#.
    L'application est une l'application client-lourd (winform). Le Client et la base (sqlite) devront-être sur le même poste.

    Quelques exigences :
    1) L'application sera livrée avec une ou plusieurs licences.
    2) Une licence peut-être illimitée ou limitée dans le temps
    3) Une licence ne peut marcher que sur un et un seul poste à la fois
    4) Le client doit avoir la possibilité de déplacer une licence d'un poste à un autre
    5) De préférence, la solution qui sera mise en place doit-être totalement open source (la boite n'est pas assez riche)

    Mes problèmes :
    1) je n'ai aucune expérience sur la gestion des licences d'une app
    2) Existe-il des Algorithmes puissant de génération de clé de licence ? Oubien dois-je faire mon Algo (gros risque dans ce cas) ?
    3) Sur quoi pourrais-je me baser pour empêcher l'installation d'une licence sur deux poste différent en même temps ?

    J'espère avoir bien décrit mon problème.

    Merci à l'avance
    L'effort fait les forts

  2. #2
    Membre du Club
    Homme Profil pro
    Software engineer
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Software engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 55
    Points
    55
    Par défaut
    Bonjour @didate

    je ne m'y connais pas non mais je suis disposé à partager avec toi ma pensée sur le sujet en ce qui concerne quelques points.

    Citation Envoyé par didate Voir le message
    Quelques exigences :
    1) L'application sera livrée avec une ou plusieurs licences.
    2) Une licence peut-être illimitée ou limitée dans le temps
    3) Une licence ne peut marcher que sur un et un seul poste à la fois
    4) Le client doit avoir la possibilité de déplacer une licence d'un poste à un autre
    5) De préférence, la solution qui sera mise en place doit-être totalement open source (la boite n'est pas assez riche)
    Tout d'abord je pense qu'il vous faudra une BD centralisée avec vos différentes BD sqlite de chaque client.

    2) Une licence peut-être illimitée ou limitée dans le temps
    selon le type de licence qu'y est générée je pense que tu devras avoir pour chaque licence un champ dans ta BD qui te permet de savoir si elle est limitée ou pas et un autre permettant de blocquer l'utilisation d'une licence via une procédure stockée, embarquée dans ta BD sqlite qui communique avec ta BD centrale à chaque démarrage de l'application et éffectue un check.

    3) Une licence ne peut marcher que sur un et un seul poste à la fois
    Ici je pense qu'il existe des algorithmes te permettant d'avoir le couple (@Ip, @mac) afin de t'assurer de l'unicité de l'installation et ces informations sont stockées aussi bien dans la BD local que central pour concordance via la procédure stockée (et une communication cliente/serveur).

    4) Le client doit avoir la possibilité de déplacer une licence d'un poste à un autre
    Je pense que pour que cela soit possible, toute installation qui n'est plus la première doit nécessiter une information supplémentaire afin de s'assurer que c'est bien le détenteur de licence; une fois cela fait, le couple d'identifiant mentinné plus haut doit être mis à jour afin que le lancement (exécution) de tout autre client soir refusé via cette procédure et la communication mise en place.

    Voilà ce que je pense et comme je te l'ai dit je ne m'y connais pas trop n'ayant pas encore eu à le faire. Donc si tu trouve meilleur astuce (quelque chose de plus propre), fais le moi (nous) savoir; bonne chance pour la suite.
    "L'homme ne devient Homme que par éducation."
    "Des pensées sans contenu sont vides, des intuitions sans concepts, aveugles."
    "Une proposition incorrecte est forcément fausse, mais une proposition correcte n'est pas forcément vraie."

    Emmanuel Kant

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé Avatar de Issam
    Inscrit en
    Mars 2002
    Messages
    578
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2002
    Messages : 578
    Points : 605
    Points
    605
    Par défaut
    Regarde sur codeproject et codeplex, il y'a pas mal de projets opensource qui peuvent te donner un début de solution ,voire une solution complète pour ce problème, par ex :
    http://www.codeproject.com/Articles/...ET-Application
    http://www.codeproject.com/Articles/...on-Trial-Maker

    et ne pas oublier l'obfuscator qui va bien avec :
    http://yck1509.github.io/ConfuserEx/

  4. #4
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Merci a vous.

    Tout d'abord je pense qu'il vous faudra une BD centralisée avec vos différentes BD sqlite de chaque client.
    Je ne comprend pas vraiment ce passage.
    Pour info : un client peut avoir plusieurs licences et les utiliser séparément.
    Exemple : Un client achète l'app avec 3 licences
    Ce client peut installer ces 3 licences sur trois postes différent. Chaque poste aura son App+sa base + sa licence
    Il n'y a aucune communication entre ces trois postes.
    Ou peut-être tu parles d'une BD qu'on aura chez nous, et qui stockera les licences de tout les clients.
    Dans ce cas je suis d'accord avec toi, le client pourra nous envoyer l'adresse mac (par mail ?) du pc sur lequel il veut activer la licence, et nous à notre tour on génère une clé en fonction du mac et on lui renvoi.
    Dans le cas de la désactivation, comme tu le dis, il me faudra un champ dans la base du client pour déterminer l'état de la licence. A chaque démarrage, l'appli devra checker ce champs pour savoir si la licence est valide ou pas.
    Pour la génération des clés de licences peut-être qu'il faudra que je développe moi même une Appli qui sera basé sur un algo de chiffrement (AES ? RSA ? ... ?)

    L'autre problème qui peut se poser, est la gestion des clés de chiffrement au niveau du client. Faudra t-il figé la clé de déchiffrement dans l'application ? Ou dans la base du client ?

    Je check tes liens #Issam pour voir ce que ça donne.
    L'effort fait les forts

  5. #5
    Membre du Club
    Homme Profil pro
    Software engineer
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Software engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 55
    Points
    55
    Par défaut
    Ou peut-être tu parles d'une BD qu'on aura chez nous, et qui stockera les licences de tout les clients.
    C'est cela.

    Dans ce cas je suis d'accord avec toi, le client pourra nous envoyer l'adresse mac (par mail ?) du pc sur lequel il veut activer la licence, et nous à notre tour on génère une clé en fonction du mac et on lui renvoi.
    Je pense que tu dois éviter le travail manuel et tout automatiser; même s'il te faut ajouter un thread (ou carrément créer une application) pour gérer pour cela par communication client/serveur. Une appli qui reçoit tes données voulues et éffectue tous les contrôles nécessaires jusqu'à la "validation". Je pense que la seule chose qui doit être manuel est la génération de clé mais qui dois aussi être stockée en BD lors de la transmission au client pour enregistrement lors de la première utilisation et son marquage comme "use".

    Pour la génération des clés de licences peut-être qu'il faudra que je développe moi même une Application qui sera basé sur un algo de chiffrement (AES ? RSA ? ... ?)
    là c'est à toi de voir; toujours est-il que cela dois être traité comme indiqué ci-dessus lors de la livraison. je ne m'y connais vraiment pas non plus mais j'éssais juste de te filer quelques idées.
    "L'homme ne devient Homme que par éducation."
    "Des pensées sans contenu sont vides, des intuitions sans concepts, aveugles."
    "Une proposition incorrecte est forcément fausse, mais une proposition correcte n'est pas forcément vraie."

    Emmanuel Kant

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Merci encore une fois.
    Citation Envoyé par emmeni Voir le message
    C'est cela.
    Je pense que tu dois éviter le travail manuel et tout automatiser; même s'il te faut ajouter un thread (ou carrément créer une application) pour gérer pour cela par communication client/serveur. Une appli qui reçoit tes données voulues et éffectue tous les contrôles nécessaires jusqu'à la "validation". Je pense que la seule chose qui doit être manuel est la génération de clé mais qui dois aussi être stockée en BD lors de la transmission au client pour enregistrement lors de la première utilisation et son marquage comme "use".
    Pour que tout soit automatisé, il me faudra une machine serveur qui sera toujours à l'écoute des requêtes clients, ce que ma boite ne peut pas proposer actuellement.

    Pour le moment je vais opter pour une solution manuelle. Et voilà comment je compte procéder :

    1) Développer une app de génération de licence : elle se chargera de générer une licence en fonction des infos de la machine du client.

    2) Développer une app d'activation et de désactivation de licence : celle-ci sera installé chez le client.

    3) Les échanges entre le client et nous seront pour le moment par e-mail.

    #Issam : tes liens sont très intéressants, ils me donnent pas mal d'idée pour l'implémentation des deux appli citées plus haut.

    Je commence le développement après demain, je posterai sur cet item les codes/algo pour des critiques et suggestions.
    Merci à vous.
    L'effort fait les forts

  7. #7
    Membre du Club
    Homme Profil pro
    Software engineer
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Software engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 55
    Points
    55
    Par défaut
    Ok du courage pour la suite ; et une fois cela fait (code publié), n'oublie pas de marquer "problème résolu"
    "L'homme ne devient Homme que par éducation."
    "Des pensées sans contenu sont vides, des intuitions sans concepts, aveugles."
    "Une proposition incorrecte est forcément fausse, mais une proposition correcte n'est pas forcément vraie."

    Emmanuel Kant

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Citation Envoyé par emmeni Voir le message
    Ok du courage pour la suite ; et une fois cela fait (code publié), n'oublie pas de marquer "problème résolu"
    Merci .... je le ferai lorsque tout sera fini, pour le moment je le laisse ouvert.
    L'effort fait les forts

  9. #9
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Bonjour,

    Désolé j'ai eu un retard, ce n'est que aujourd'hui que je commence le développement.

    Actuellement je suis sur l'écran de génération de licence, qui est basé sur le système de GUID. Il se présente comme suit :

    Nom : Capture.PNG
Affichages : 725
Taille : 47,2 Ko

    Ma question :

    J'utilise l'instruction suivante pour générer les GUIDs : Y a t-il une possibilité qu'il y ait des GUIDs identiques ?
    L'effort fait les forts

  10. #10
    Membre du Club
    Homme Profil pro
    Software engineer
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Software engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 55
    Points
    55
    Par défaut
    Y a t-il une possibilité qu'il y ait des GUIDs identiques ?
    Je pense qu'il est impossible d'avoir des GUIDs identiques sinon cela n'a plus rien des GUIDs, en fait cela n'aurait pas de sens
    "L'homme ne devient Homme que par éducation."
    "Des pensées sans contenu sont vides, des intuitions sans concepts, aveugles."
    "Une proposition incorrecte est forcément fausse, mais une proposition correcte n'est pas forcément vraie."

    Emmanuel Kant

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    C'est le passage suivant qui n'a fait douter un peu

    Un GUID est un entier 128 bits (16 octets) qui peut être utilisé sur tous les ordinateurs et réseaux lorsqu'un identificateur unique est nécessaire. Il est très peu probable qu'un tel identificateur soit dupliqué.
    Source : http://msdn.microsoft.com/fr-fr/libr...v=vs.110).aspx

    Mais bon, le taux étant très très faible, donc ça va je n'ai presque rien a craindre.
    L'effort fait les forts

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/06/2009, 19h16
  2. Genérer une licence pour une application
    Par WELCOMSMAIL dans le forum C++
    Réponses: 3
    Dernier message: 12/10/2006, 10h41
  3. [C#] Gestion des langues d'une application
    Par therock dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/05/2006, 09h47
  4. VB6 - gestion des menus d'une application
    Par lhirsute dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/01/2006, 20h17
  5. Gestion des Utilisateurs depuis une application
    Par LLaurent dans le forum XMLRAD
    Réponses: 4
    Dernier message: 25/03/2003, 17h29

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