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

Dotnet Discussion :

Mise en place de téléchargement de contenu additionnel pour un logiciel


Sujet :

Dotnet

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 60
    Points : 33
    Points
    33
    Par défaut Mise en place de téléchargement de contenu additionnel pour un logiciel
    Bonjour,

    Nous somme entrain de développer un logiciel en WPF que nous aimerions commercialiser (via téléchargement payant depuis notre site web).
    Afin d'éviter les risques de piratage, nous allons mettre en place un système de licence qui va permettre de nous assurer que plusieurs installations ne sont pas possible avec la même clé.
    L'utilisateur devra donc télécharger le programme d'installation de notre logiciel, l'installer, et acheter une clé sur notre site qui va permettre d'activer son installation (la clé est créé en fonction de l'identifiant matériel de l'ordinateur de l'utilisateur).
    Note logiciel met à la disposition de l'utilisateur une bibliothèque d'images qu'il va pouvoir utiliser afin de créer des schémas (c'est un logiciel d'édition de schéma à base de formes géométriques et d'images).
    La bibliothèque en elle même est un fichier DLL de ressource créé avec une application tierce développée par nos soins (cette DLL comporte les images dans un format chiffré).
    Au démarrage de l'application, le logiciel vérifie la présence de cette DLL dans un dossier spécifique, puis la charge (si d'autres DLL de ressource d'images sont trouvées, elle sont aussi chargées).
    Nous aimerions proposer au client de télécharger des extensions de la bibliothèque, c'est a dire des DLL supplémentaires (afin qu'il puisse bénéficier de nouvelles images).
    Ces "packs additionnels", seraient proposés en téléchargement payant sur notre site web.
    Il nous faut donc trouver un moyen de s'assurer que les utilisateurs ne puissent pas se partager les packs qu'ils téléchargent, en associant la DLL téléchargée avec le logiciel du client (en se basant sur la licence de l'installation de logiciel).

    Comment peut-on faire pour signer la DLL téléchargée avec la licence de l'utilisateur pour s'assurer que cette DLL ne fonctionnera que sur son post, avec son installation du logiciel et pas avec une autre ?
    Connaissez vous un système alternatif pour mettre en place ce fonctionnement ? Sommes-nous sur la bonne voie ?

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Points : 88
    Points
    88
    Par défaut
    je ne sais pas si CodeDom fonctionne depuis un serveur ASP.Net mais moi j'aurrai creusé dans cette direction. En gros tu crée le code source de ta dll avec une constante ou tu inscrits le serial number de l'utilisateur et tu compile la dll à la volée depuis ton serveur en y empactant tes ressources a l'interieur.
    Une fois compilé tu mets a disposition le lien de téléchargement pour l'utilisateur (sous la forme d'un patch qui va placer la dll au bon endroit et le tour est joué)

    Et évidement au niveau de ton programme tu fais une vérif au lancement pour savoir si la valeur de la constante est bien égale au numéro de licence.

    Sinon deuxième possibilité (peut-etre un peu plus lourde car elle nécéssite d'avoir forcément du réseau sur le poste utilisateur). Tu prépare une dll avec l'ensemble des ressources, et a chaque lancement de l'application tu check un web service présent sur ton serveur qui fera redescendre des privilèges et interdication d'utilisateur en fonction de la licence acheté par l'utilisateur (comme une sorte de GPO sur un serveur quoi ^^)

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

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

    Informations forums :
    Inscription : Février 2013
    Messages : 51
    Points : 83
    Points
    83
    Par défaut
    Bonjour iBen68,

    Si j'ai bien compris le problème, je pense avoir une solution très simple à mettre en place.

    D'après vos explications, vous souhaitez protéger le chargement de DLL annexes pour éviter que les utilisateurs puissent les partager. Ce fonctionnement est très proche des DRM utilisés pour la musique (exemple : les MP3).

    La solution la plus simple, selon moi, peut se faire en suivant les étapes suivantes :
    - pour chaque DLL, vous définissez un numéro de série unique (par exemple un GUID),
    - dans chaque DLL, vous créez une classe "Version" qui comporte une méthode "GetSerialNumber" et qui retourne ce numéro de version.
    - lors du chargement de la DLL dans votre application, vous créez une instance de cette classe (par reflexion) et vous appeler cette méthode pour récupérer le numéro de série,
    - une fois le numéro de série connu, vous faites un appel à votre site web pour vérifier la licence de cette DLL. Il s'agit de vérifier si l'utilisateur a bien le droit d'accéder à cette DLL (numéro de version).
    - ce type de service peut être réalisé avec WebAPI ou WCF par exemple. Il suffit de créer une méthode de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool CheckLicence(string userName, Guid dllNumber)
    Avec ce système, à chaque démarrage de l'application, les différents composants seront vérifiés. Grâce à ce mécanisme vous pourrez aussi mettre en place des composants utilisables pour une durée définie (par exemple 1 mois, un an...). Autre idée : vous pouvez aussi mettre en place des abonnements...

    En espérant avoir répondu à votre question,
    Pascal

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/05/2015, 13h13
  2. Mise en place d'un outil de BI pour un observatoire Territorial
    Par Luern dans le forum Autres outils décisionnels
    Réponses: 5
    Dernier message: 03/02/2012, 10h58
  3. Mise en place d'un modul de chat pour l'aide en ligne
    Par camcam8782 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 06/10/2010, 19h15
  4. mise en place serveur web intranet
    Par gui4593 dans le forum Installation
    Réponses: 7
    Dernier message: 01/01/2004, 18h18
  5. Mise en place d'index....??
    Par liv dans le forum Requêtes
    Réponses: 6
    Dernier message: 18/12/2003, 11h04

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