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 :

Methode pour tester les droits d'acces a un Directory Ou repertoire


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Methode pour tester les droits d'acces a un Directory Ou repertoire
    Bonjour

    Le sujet ne semble pas trivial
    Je voudrais ecrire une methode permettant de tester si un Directory possede les droits requis

    Par exemple je voudrais m'assurer que l'utilisateur peut ecrire dans un repertoire mais aussi creer des sous repertoires

    Si j'ai bien compris, je dois donc tester si le repertoire possede les droits suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileSystemRights.CreateDirectories;
    FileSystemRights.Write;
    Et si j'ai toujours bien compris il n'y a pas moyen d'utiliser un masque mais il faut faire le test en boucle dans ce genre ci-dessous
    Mais personne n'a-til de meilleure methode a suggerer ou me dire si je n'ai pas bien compris quelque chose ?

    Merci de votre aide


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
          DirectorySecurity dirSecurity = null;
          try
          {
            dirSecurity = Directory.GetAccessControl(path);
          }
          catch (UnauthorizedAccessException)
          {
            return false;
          }
     
          var rules = dirSecurity.GetAccessRules(true, true, typeof(NTAccount));
     
          WindowsPrincipal wp = new WindowsPrincipal(account);
     
          int R=0;
     
          foreach (FileSystemAccessRule rule in rules)
          {
            if (wp.IsInRole(rule.IdentityReference.Value))
            {
              if ((rule.FileSystemRights & FileSystemRights.CreateDirectories) == FileSystemRights.CreateDirectories)
              {
                R++;
              }
              if ((rule.FileSystemRights & FileSystemRights.Write) == FileSystemRights.Write)
              {
                R++;
              }
            }
          }
          if (R >= 2)
          {
            return true;
          }
          return false;
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Expert éminent 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
    Points : 7 903
    Points
    7 903
    Par défaut
    Il me semble que c'est bien le genre de code à faire.
    Mais, pas sur que le code marche dans le cas de Group.

    Ce lien m'a l'air de fournir une solution assez complète: http://www.conarc.com/blog/2010/03/2...e-permissions/
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

Discussions similaires

  1. [AC-2010] Tester les droits d'accès à un dossier
    Par Daejung dans le forum VBA Access
    Réponses: 7
    Dernier message: 08/02/2014, 15h58
  2. Réponses: 6
    Dernier message: 09/10/2012, 18h45
  3. Réponses: 4
    Dernier message: 01/08/2009, 17h44
  4. Difficulté à configurer les droits d'acces pour PgAdmin
    Par Pigoulou dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 22/12/2005, 16h04
  5. [JUnit] Pour tester les methodes d'acces à une sgdb
    Par yanis97 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 15/04/2004, 15h55

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