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

C# Discussion :

Restriction de permissions pour une DLL


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut Restriction de permissions pour une DLL
    Bonjour.

    Est-ce qu'il est possible, en C# 3.5, de gerer les permissions d'une DLL à partir du programme qui fait appel à cette DLL ?

    Le scenario est le suivant : un plugin pour une application lambda sera téléchargé à partir d'une source distante configurable par l'utilisateur. Certes, on previent l'utilisateur qu'il ne doit configurer que des sources dont il a confiance, mais bon, rien ne dit qu'il va suivre les conseils... Du coup, est-ce qu'il est possible au moins d'enlever un certain nombre de permissions (ou bien c'est plus simple de verifier qu'ils sont bien enlevés dans l'assembly du DLL avant l'exécuter ?), ainsi que de restreindre l'accès disque dur à un ou plusieurs dossiers ?

    PS. Je ne sais pas si c'est utile, mais en cas où, je precise que l'application même doit forcement tourner avec les permissions de l'utilisateur qui l'exécute, et doit pouvoir y accèder à beaucoup plus de choses.

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Si c'est des plugins, et si c'est C# 3.5, pourquoi ne pas utiliser la méthode fournie par le framework pour gérer les addins et leurs autorisations ?
    cf. http://badger.developpez.com/tutorie...framework-3-5/

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut
    Citation Envoyé par smyley Voir le message
    Si c'est des plugins, et si c'est C# 3.5, pourquoi ne pas utiliser la méthode fournie par le framework pour gérer les addins et leurs autorisations ?
    cf. http://badger.developpez.com/tutorie...framework-3-5/
    Pourquoi ? Parce que je ne savais pas que cela existe, tout simplement.

    Et bien merci beaucoup pour le lien !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Février 2008
    Messages : 95
    Par défaut
    Des mois après, je reviens sur ce sujet avec un feedback.

    Pour ceux qui souhaitent, comme moi, restreindre les privilèges au niveau de l'exécution du code, réfléchissez dix fois avant d'utiliser les AddIns du framework.

    Après avoir effectivement tinté d'implémenter la chose sur un projet de taille, l'équipe chargée de ce projet a fini par décider de refaire tout sans utiliser d'AddIns. Ceci pour plusieurs raisons.

    • La raison principale, c'est que chaque modification doit être refaite minimum sept fois à la place de deux, et d'ailleurs il n'est souvent pas possible de faire des copiers-collers. Niveau extensibilité du code, c'est bien entendu une catastrophe, si les spécifications évoluent souvent, comme ce fut le cas en l'espèce.
    • La deuxième raison : on a pas pu trouver un quelconque avantage d'utiliser les AddIns plutôt qu'une solution ordinaire. La restriction des privilèges sur le code, elle, peut très bien être faite sur les simples AppDomains.
    • Finalement, les AddIns cachent un nombre important de pièges. Par exemple le fait d'être obligé de créer des dossiers avec les noms spécifiques pour les différentes librairies. Pour des projets spécifiques, ceci peut juste ne pas être acceptable. À noter que les AddIns reprennent toutes les pièges des AppDomains, comme par exemple l'impossibilité de mettre un System.Windows.Forms.Control dans un add-in pour ensuite l'ajouter à l'interface d'une fenêtre crée par l'application principale.

    Au final, on a perdu des milliers d'euros juste pour avoir fait le mauvais choix des AddIns dès l'origine.

    Dès lors, refaites pas la même erreur. Si vous voulez implémenter les plugins dans un logiciel, soyez bien sûr que les AddIns vous apportent quelque chose de précieux et indispensable qu'aucune autre approche ne peut apporter et que votre projet n'est pas Agile et ne subira aucune modification des spécifications.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    826
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 826
    Par défaut
    Merci pour ton retour.

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

Discussions similaires

  1. Répertoire courant pour une DLL
    Par jaduta dans le forum Delphi
    Réponses: 2
    Dernier message: 02/04/2007, 09h10
  2. [C#] Y a-t-il un accesseur Auteur pour une Dll ?
    Par cathar_rhythm dans le forum C#
    Réponses: 3
    Dernier message: 15/08/2006, 17h32
  3. Question sur exports et les classes (pour une dll)
    Par DjPoke dans le forum Langage
    Réponses: 7
    Dernier message: 08/08/2005, 19h25
  4. result: chaine de caractère pour une DLL
    Par Sephiroth Lune dans le forum Langage
    Réponses: 7
    Dernier message: 27/07/2004, 23h05
  5. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07

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