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 :

Restriction de droits.


Sujet :

Windows Forms

  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut Restriction de droits.
    Bonjour,

    Suite aux conseils avisés plusieurs intervenants, j'ai créé ma classe d'authentification. Elle contient un Utilisateur auquel est assignée une valeur entière indiquant un niveau de droits.

    Je cherche maintenant la meilleure technique pour utiliser ces droits définis pour l'utilisateur. En fonction d'un bit à 0 ou 1 dans un entier, l'utilisateur peut par exemple afficher plus ou moins d'information dans une grille de données, ou créer de nouveaux éléments, etc. Rien que du classique !

    La première idée qui me vient est d'utiliser un if à chaque action tentée (pour les filtres sur les listes par exemple) mais ça me parait un peu lourd. Activer ou non certaines commandes à la création de la form parait raisonnable mais ne résoud qu'une partie du problème (voir la liste plus ou moins filtrée citée plus haut).

    Existe il une méthode classique pour faire ce genre de chose ?

    J-L

  2. #2
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Je cherche maintenant la meilleure technique pour utiliser ces droits définis pour l'utilisateur. En fonction d'un bit à 0 ou 1 dans un entier, l'utilisateur peut par exemple afficher plus ou moins d'information dans une grille de données, ou créer de nouveaux éléments, etc. Rien que du classique !
    T'auras du mal à me convaincre que travailler au niveau bit en C# et pour une application qui de plus fait intervenir un utilisateur humain ça a du sens.
    Je te suggère de bosser avec une série de booléen.

    La première idée qui me vient est d'utiliser un if à chaque action tentée (pour les filtres sur les listes par exemple) mais ça me parait un peu lourd.
    Tu sais quelles sont les chances qu'un pauvre petit if gêne ton utilisateur? A ce que je comprend t'es pas en train d'écrire un algorithme de recherche opérationelle qui sera appelé 150'000 fois. Il ne faut s'inquiéter de ce genre de chose que si ça a un sens, et là crois-moi ce n'est pas le cas.

    Existe il une méthode classique pour faire ce genre de chose ?
    J'ai traité un problème similaire en m'inspirant du design pattern adapter. J'ai créer une classe qui encapsule différentes données propres aux droits de l'utilisateur (pour ton cas ce serait ce int qui représente les niveaux de droits).
    Et cette classe contient différentes méthodes publiques telles que
    CanModify()
    CanCreateNew()
    CanDelete()
    retourant des booléens.

    AInsi au login je n'ai qu'à créer cet objet, l'enregistrer dans une classe singleton et m'en servir lorsque j'ai besoin de tester si une fonctionnalité est disponible ou non.
    C'est très propre et très lisible, par ailleurs si je change ma politique de droit, c'est une seule classe à modifier.

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    Ok, donc, pas d'autre solution qu'un test avant chaque action.
    Je retiens la solution de la classe et des fonctions qui indiquent les droits.

    Merci !

  4. #4
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    De rien,
    J'espère que les nombreuses nano-secondes qui découlent de cette approche ne gêneront pas trop les utilisateurs.

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 530
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 530
    Par défaut
    rien à voir avec un problème de timing mais plutot une facilité de programmation.
    Comme je l'expliquais dans un autre thread, dans le monde delphi d'ou je viens, il existe les "actions" que l'on peut lier à tout élément visuel potentiellement actif de l'interface. Il suffit de désactiver une action pour désactiver automatiquement tous les controles liés à cette action. C'est très pratique.
    Je cherchais juste s'il existait une solution du meme genre en C# ...

  6. #6
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Ah, j'ai cru avoir affaire à un fou de l'optimisation.
    Je ne pense pas qu'il y ait un équivalent en .Net à ces actions, sauf peut etre utiliser la propriété Tag et coder manuellement la désactivation.

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

Discussions similaires

  1. [XL-2007] Restriction droit excel par utilisateur
    Par dvdhag123 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 15/04/2015, 16h54
  2. [XL-2007] Restriction droit excel par utilisateur
    Par dvdhag123 dans le forum Excel
    Réponses: 6
    Dernier message: 07/04/2015, 09h04
  3. [AC-2000] pb restriction droits sur .mdb après compactage
    Par jover dans le forum Sécurité
    Réponses: 3
    Dernier message: 23/06/2010, 23h31
  4. restriction des droits Active Directory
    Par mhamedbj dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 15/01/2009, 11h40
  5. [VB6] [Printer] Chiffres alignés à droite
    Par Laye dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 03/10/2002, 18h36

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