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 :

Ajout d'objet avec FileSystemAccessRule


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut Ajout d'objet avec FileSystemAccessRule
    Bonjour à tous,
    J'aimerai ajouter un utilisateur ou groupe (déjà existant dans mon AD) au contrôle d'accès d'un dossier.
    J'y arrive sans problème en ajoutant "Administrateurs" qui existe en local :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    string user = "Administrateurs";
    DirectoryInfo dInfo = new DirectoryInfo(FoldersView.SelectedNode.FullPath);
    DirectorySecurity dSecurity = dInfo.GetAccessControl();
     
    //DirectoryEntry user = new DirectoryEntry();
     
    NTAccount acct = new NTAccount(user);
    IdentityReference id = acct.Translate(typeof(SecurityIdentifier));
    FileSystemAccessRule rule = new FileSystemAccessRule(id, FileSystemRights.ReadAndExecute | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
    dSecurity.AddAccessRule(rule);
    dInfo.SetAccessControl(dSecurity);
    Comment je pourrais m'y prendre avec un utilisateur situé sur mon AD.
    Merci à tous, bonne journée.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut
    Bonjour à tous.
    Je vais procédé avec les recherches dans l'AD avec le constructeur DirectorySearcher.
    Cependant j'aimerai avoir quelque chose du genre :
    Si il y a un résultat à ma recherche, on fait l'action 1.
    Si il n'y a aucun résultat, on affiche une messagebox.
    Quelqu'un sait comment je pourrais procédé ?
    Merci beaucoup.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut
    Ok j'ai fait quelque chose comme cela :
    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
     
    string userName = textBox3.Text;
    DirectoryInfo dInfo = new DirectoryInfo(_path);
    DirectorySecurity dSecurity = dInfo.GetAccessControl();
     
    string ldapReq = @"(&(objectCategory=user)(samAccountName=" + userName + "))";
    string ldapRoot = "LDAP://domain.net/DC=DOMAIN,DC=NET";
     
    DirectoryEntry sroot = new DirectoryEntry(ldapRoot, "toto", "toto");
    DirectorySearcher searcher = new DirectorySearcher(sroot, ldapReq, new string[] { "member" }, SearchScope.Subtree);
     
    SearchResult sr = searcher.FindOne();
     
    foreach (string cnMember in sr.GetDirectoryEntry().Properties["sAMAccountName"])
    {
    MessageBox.Show("L'utilisateur " + userName + " a bien été identifié dans la base LDAP");
     
    // Lui affecter les droits 
     
    }
    Voilà quand je saisis le login d'un user, j'ai bien la messagebox qui s'affiche. Maintenant quand j'intègre le code qui attribue les droits comme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    NTAccount acct = new NTAccount(userName);
    IdentityReference id = acct.Translate(typeof(SecurityIdentifier));
    FileSystemAccessRule rule = new FileSystemAccessRule(id, FileSystemRights.ReadAndExecute | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
    dSecurity.AddAccessRule(rule);
    dInfo.SetAccessControl(dSecurity);
    La j'ai une erreur :

    La relation d'approbation entre le domaine principal et le domaine approuvé a échouée.
    Comment je pourrais faire pour solutionner ce problème ?

Discussions similaires

  1. Problème d'ajout d'objet avec clé étrangère
    Par zuzuu dans le forum Hibernate
    Réponses: 7
    Dernier message: 16/03/2009, 10h08
  2. Criteria ajout d'objets avec une jointure
    Par Sniper37 dans le forum Hibernate
    Réponses: 11
    Dernier message: 09/06/2008, 16h15
  3. [POO] Instancier un objet avec le nom de la classe
    Par shinchun dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2006, 13h44
  4. Réponses: 1
    Dernier message: 02/01/2003, 12h45
  5. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22

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