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 :

[C#] Attribution de Droits NTFS


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 29
    Par défaut [C#] Attribution de Droits NTFS
    Bonjours,

    Je fais un projet en C# dans le quelle une partie conciste à attribuer des droits sur des dossiers sur un serveur de partage...

    J'arrive à effectuer cette attribution sur mon disque local par contre sur le serveur, une erreur apparait :

    Une exception non gérée du
    type 'System.Runtime.InteropServices.COMException' s'est
    produite dans mscorlib.dll

    Informations supplémentaires : Le mappage entre les noms
    de compte et les ID de sécurité n'a pas été effectué.
    qq'un m'as dit ça :

    "Tu désactives l'héritage des permissions par code (tu clear le bit SE_DACL_AUTO_INHERIT_REQ des flags de ton SD)"

    Mais je sais pas comment je désactive cette héritage sur mon SecurityDescriptor.. alors si qq'un pouvait m'aider.

    [Tag [C#] rajouté par Abelman]
    [balises quote ajoutée]
    [Merci de lire les règles du forum et celles du forum Dotnet avant de poster]

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Peut-on voir ton code ?

  3. #3
    Membre averti
    Inscrit en
    Février 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 29
    Par défaut
    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
     
    Directory.CreateDirectory(Adresse);
    SecurityDescriptor secDesc = SecurityDescriptor.GetFileSecurity(Adresse, SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);
     
    Dacl dacl = secDesc.Dacl;
    strUser=Str_utilisateur;
    Sid sidUser = new Sid (strUser);
    secDesc.SetNullDacl(true);
     
    dacl.AddAce (new AceAccessAllowed (sidUser, AccessType.GENERIC_READ | AccessType.GENERIC_EXECUTE, AceFlags.OBJECT_INHERIT_ACE | AceFlags.CONTAINER_INHERIT_ACE));
     
    //je ne comprends pas trop qq c'est que ça...
    DirectoryAccessType DAType = DirectoryAccessType.FILE_WRITE_ATTRIBUTES | DirectoryAccessType.FILE_WRITE_EA | DirectoryAccessType.DELETE | DirectoryAccessType.WRITE_OWNER | DirectoryAccessType.WRITE_DAC;
     
    AccessType AType = (AccessType)DAType;
     
    dacl.AddAce (new AceAccessDenied (sidUser, AType));
     
    secDesc.SetDacl(dacl);
    secDesc.SetFileSecurity(Adresse, SECURITY_INFORMATION.DACL_SECURITY_INFORMATION);
    voilà

  4. #4
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    J'ai le même problème.
    Tu as trouvé quelque chose?

    Merci.

  5. #5
    Membre averti
    Inscrit en
    Février 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 29
    Par défaut
    non est toi?

  6. #6
    Membre du Club
    Inscrit en
    Avril 2004
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 7
    Par défaut
    oui.

    Avant de faire un dacl.AddAce il ne faut pas oublier de faire le remove :
    Si on l'omet, le programme fonctionne la première fois mais pas la 2ème.
    Pour les permissions voici l'instruction que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    dacl.AddAce (new AceAccessAllowed (
    sidUser, AccessType.GENERIC_WRITE | AccessType.GENERIC_READ 
    | AccessType.DELETE | AccessType.GENERIC_EXECUTE , 
    AceFlags.OBJECT_INHERIT_ACE | AceFlags.CONTAINER_INHERIT_ACE));

  7. #7
    Membre averti
    Inscrit en
    Février 2004
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 29
    Par défaut
    ok mais j'ai utiliser un script vbs que j'ai dl sur le site de microsoft. je te promet que tu t'embète beaucoup moin 8)
    il s'appelle XCACLS
    http://support.microsoft.com/default...b;en-us;825751
    Et fonctionne même sur le réseau.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 9
    Par défaut
    Pour désactiver l'héritage des acl (Framework 2.0) :


    using System.Security.AccessControl;

    //supprimer les droits hérités avec recopie des droits (héritée de = <non héritée>)
    DirectorySecurity directorySecurity = Directory.GetAccessControl(pathSelectedFile);
    directorySecurity.SetAccessRuleProtection(true, true);
    Directory.SetAccessControl(pathSelectedFile, directorySecurity);

    //supprimer les droits hérités sans recopie des droits
    DirectorySecurity directorySecurity = Directory.GetAccessControl(pathSelectedFile);
    directorySecurity.SetAccessRuleProtection(true, false);
    Directory.SetAccessControl(pathSelectedFile, directorySecurity);

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

Discussions similaires

  1. Attribution de droit NTFS à un compte admin
    Par oliveman20111 dans le forum VBScript
    Réponses: 0
    Dernier message: 21/12/2011, 11h46
  2. Réponses: 4
    Dernier message: 11/04/2007, 10h07
  3. [VBS] droit NTFS sur dossier perso des utilisateurs
    Par Amandine62 dans le forum VBScript
    Réponses: 6
    Dernier message: 02/03/2006, 20h43
  4. Fonctionnement des attributions de droits sur table et bdd ?
    Par shako95 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2005, 14h39

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