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

VB.NET Discussion :

Accés AD par VB.net [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Par défaut Accés AD par VB.net
    Bonjour a tous.
    Je suis actuelement en stage et doit repasser sur une application en VB.net.
    L'objectif est de recuperer l'ensemble des personnes ayant des droits en lecture et/ou ecriture sur des dossiers.
    J'arrive a recuperer l'intitulé des dossiers sur lequel je veux recup les droits,j'arrive aussi a recup l'ensemble des utilisateur dans l'AD seulement,je ne trouve pas comment specifier que je ne veux QUE la liste des personnes sur un dossier en particulier.
    J'ai essayé different parametre pour search.filter mais sans reussite.
    En esperant avoir ne serait-ce qu'un procedure globale,je vous souhaites une bonne journée.

  2. #2
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Hello,

    J'ai joué un peu avec l'AD de la boîte où je bosse histoire de voir ce qu'on pouvait faire pour automatiser certaines choses et voici ce que j'avais pour récupérer les membres d'un groupe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            'connexion active directory
            ldap = New DirectoryEntry("LDAP://laracine /OU=la liste de OU et/ou de DC ", username, password)
            searcher = New DirectorySearcher(ldap)
    
            'pour trouver les membres d'un groupe
            With searcher
                .SearchRoot = ldap
                .Filter = "(&(ObjectClass=Group)(CN=LeGroupeQuiVaBien))"  '<<< Change the Group name here
            End With
    
            Dim Members As Object = searcher.FindOne.GetDirectoryEntry.Invoke("Members", Nothing) '<<< Get members
    N.B. : les parties en gras sont à changer par vos valeurs obv.

    Ensuite une boucle sur members et hop, on a les users. Faut juste faire gaffe pour les cas où il y a un groupe dans le groupe.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Par défaut
    Merci beaucoup pour cet exemple,j'avais effectivement prévus de recup les groupes dans un premier temps,mais je reste bloqué au niveau de la "liaison" entre mes dossiers et mes groupes.

    Puis - je recuperer sur un dossier une sorte de tableau avec un ensemble d'identifiants unique qui representerai les groupes avec les droits R-R/W sur ce dossier?

    Le but etant de generer un document .txt/.xml qui recap l'ensemble des droits du style



    Dossier A
    Droit R
    User a
    User b
    Droit R/W
    User c
    Dossier B
    Droit R
    ..........

    Sachant que touts ces dossiers se trouves dans un seul et meme dossier.

    Merci de votre implication ^^

  4. #4
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Je ne peux vous aider plus.

    Je n'ai fait que "jouer" avec l'AD. Je n'ai pas creusé en détail :-/

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Par défaut
    Merci quand meme,je vais creuser la gestion des groupes du coup.

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Je ne pense pas que ça soit visible directement dans l'AD. Il faut contrôler l'ACL de chaque répertoire un par un.

    Il y a un bout de code (trouvé ici) qui pourra peut-être t'intéresser :
    Code VB.NET : 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
    Dim path As String = "c:\temp"
    Dim NtAccountName As String = "MyDomain\MyUserOrGroup"
     
    Dim di As New DirectoryInfo(path)
    Dim acl As DirectorySecurity = di.GetAccessControl(AccessControlSections.All)
    Dim rules As AuthorizationRuleCollection = acl.GetAccessRules(True, True, GetType(NTAccount))
     
    'Go through the rules returned from the DirectorySecurity
    For Each rule As AuthorizationRule In rules
    	'If we find one that matches the identity we are looking for
    	If rule.IdentityReference.Value.Equals(NtAccountName, StringComparison.CurrentCultureIgnoreCase) Then
    		'Cast to a FileSystemAccessRule to check for access rights
    		If (DirectCast(rule, FileSystemAccessRule).FileSystemRights And FileSystemRights.WriteData) > 0 Then
    			Console.WriteLine(String.Format("{0} has write access to {1}", NtAccountName, path))
    		Else
    			Console.WriteLine(String.Format("{0} does not have write access to {1}", NtAccountName, path))
    		End If
    	End If
    Next
     
    Console.ReadLine()
    Il faut l'utiliser conjointement à celui que t'a donné Kropernic, afin d'obtenir l'algo suivant :
    • Obtenir la liste des utilisateurs qui t'intéressent depuis l'AD
    • Obtenir le dossier racine pour le traitement (variable path ci-dessus)
    • Ensuite pour chacun des utilisateurs, on passe le login (variable NtAccountName ci-dessus)
    • Puis on scanne chacun des dossiers enfants du dossier racine.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

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

Discussions similaires

  1. [Débutant] accès à une base de données Ms Access par le net
    Par djelloharmel dans le forum VB.NET
    Réponses: 5
    Dernier message: 20/10/2011, 13h13
  2. [Video] Regarder la TV par le net
    Par Faith's Fall dans le forum Vidéo
    Réponses: 3
    Dernier message: 09/08/2007, 23h32
  3. Réponses: 4
    Dernier message: 09/11/2004, 22h38
  4. Réponses: 9
    Dernier message: 17/04/2004, 16h32
  5. [Kylix] Débrider Kylix sans passer par le Net
    Par BXDSPORT dans le forum EDI
    Réponses: 1
    Dernier message: 23/03/2003, 10h52

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