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 :

[VB.NET] Se connecter a l'ACTIVE DIRECTORY


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut [VB.NET] Se connecter a l'ACTIVE DIRECTORY
    Bonjour,

    Dans le cadre d'un projet, je désirerais me connecter à l'active directory et lister tous les PC sur lesquels un User choisie se serai connecter Je ne sais pas si c'est clair !!
    Pouvez vous m'aidez ??
    Merci d'avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    tu peux lire ca pour savoir comment te connecter à l'AD :
    http://www.supinfo-projects.com/fr/2...intranet_fr/1/

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    Bonjour,

    Je souhaite une code pour du VB.NET hors vous m'avez fourni un site pour de l'asp.net.

    Mais merci quand même

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    Certes, mais même si la syntaxe diffère un peu c'est quasiment pareil.
    Si tu regardes le début du tutorial il te montre comment se connecter à l'AD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    imports System.DirectoryServices
     
    DirectoryEntry Ldap = new  DirectoryEntry( "LDAP://nom_du_serveur" , "le login" , "le mot de passe" )
    une fois que tu es connecté tu peux utiliser toutes les informations disponibles dans l'active directory en effectuant une recherche, tu trouveras les fonctions dans le tutoriel (la syntaxe des boucles VB.NET est différente mais les fonctions sont les memes).


    Ceci étant dit l'active directory ne saura pas te dire sur quels PC un utilisateur s'est connecté. En revanche elle te donnera la liste des PC, ce qui est un bon début.

    Une dernière chose, il existe un logiciel qui s'apelle LDAPBrowser de softerra qui t'aidera grandement à savoir quelles infos sont disponibles dans l'AD, le nom des propriétés, etc...

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    re:

    Du coup j'ai deux erreur dont je ne voie pas comment les reglé
    Pouvez vous m'aidez ??

    Error 1 'DirectoryEntry' is a type and cannot be used as an expression. C:\Documents and Settings\thm1bnv\My Documents\Visual Studio 2005\Projects\Projet pour Danielle\Projet pour Danielle\Form1.vb 48
    Error 2 Name 'Ldap' is not declared. C:\Documents and Settings\thm1bnv\My Documents\Visual Studio 2005\Projects\Projet pour Danielle\Projet pour Danielle\Form1.vb 48
    Voilà je sais je suis un neophite mais bon j'apprend

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    poste ton code qu'on puisse voir ce qui ne va pas.
    On a tous commencé un jour

  7. #7
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    Bonjour,

    Voilà mon code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     
            DirectoryEntry(Ldap = New DirectoryEntry("LDAP://nom_du_serveur",  Textbox1.Text, Textbox2.text))
        End Sub
    Oui il faut commencer un jour mais faut aimer avoir mal a la tête

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    As tu mis en début du fichier vb le "imports System.DirectoryServices"?

  9. #9
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    Bonjour à tous,
    je suis aussi entrain de vouloir connecter mon appli web à active directory en passant par la configuration du web.config.
    Lorsque j'arrive sur ma page Login.aspx, il me renvoie cette erreur:
    Échec de la demande d'autorisation de type 'System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
    Merci de votre aide.

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 948
    Par défaut
    probablement que ton serveur ou ton login ou ton mot de passe n'est pas correct alicia.

  11. #11
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    Bonjour,

    Oui j'ai bien mis en haut "Imports System.DirectoryServices"

  12. #12
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    bonjour et merci pour ta réponse!

    je crois que je suis entrain de me mélanger les pétales.J'ai modifié le web-config et j'ai l'imppressionde ma méthode ne suit aucune logique.
    pourrais tu stp m'indiquer la méthode à suivre.
    Merci.

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Par défaut
    Bonjour,

    C'est exactement ton code ?
    Citation Envoyé par maxp74 Voir le message
    Voilà mon code source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
     
            DirectoryEntry(Ldap = New DirectoryEntry("LDAP://nom_du_serveur",  Textbox1.Text, Textbox2.text))
        End Sub
    Je suppose que tu veux que LDAp soit ton objet de type DirectoryEntry.
    En vb.NEt, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Ldap As New DirectoryEntry("LDAP://nom_du_serveur",  Textbox1.Text, Textbox2.text)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Ldap As DirectoryEntry = New DirectoryEntry("LDAP://nom_du_serveur",  Textbox1.Text, Textbox2.text)

  14. #14
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    Pour être plus précise, ci après les étapes de mon code:

    primo, le web-config
    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
    <connectionStrings>
      <add name="ADConnectionString" connectionString="LDAP://monserveur"/>
    	</connectionStrings>
     
    <compilation debug="true" strict="false" explicit="true">
    			<assemblies>
    			<add assembly="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies>
    </compilation>
     
    <membership defaultProvider="ActiveDirectoryProvider">
          <providers>
            <add name="ActiveDirectoryProvider" 
             type="System.Web.Security.ActiveDirectoryMembershipProvider, 
            System.Web, Version=2.0.0.0, Culture=neutral, 
            PublicKeyToken=b03f5f7f11d50a3a" 
             connectionStringName="ADConnectionString" 
             attributeMapUsername="sAMAccountName"/>
          </providers>
    </membership>
     
    <authentication mode="Forms">
          <forms name=".ADAuthCookie" timeout="43200"></forms>
    </authentication>
     
    <authorization>
     
          <allow users="*"/>
    </authorization>
    secundo, ma page Login.aspx
    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
    <asp:Login ID="Login1" runat="server" Height="168px" Width="424px">
            <LayoutTemplate>
             <table style="width: 502px">
                <tr>
                    <td style="width: 214px">
                        <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Names="Verdana" ForeColor="White"
            Text="Compte Utilisateur" Width="139px"></asp:Label></td>
                    <td>
                        <asp:TextBox ID="Username" runat="server"></asp:TextBox></td>
                </tr>
                <tr>
                    <td style="width: 214px">
        <asp:Label ID="Label2" runat="server" Font-Bold="True" Font-Names="Verdana" ForeColor="White"
            Text="Mot de Passe" ></asp:Label></td>
                    <td>
                        &nbsp;<asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox></td>
                </tr>
                <tr>
                    <td style="width: 214px">
                    </td>
                    <td>
                        <asp:Button ID="btnLogin" runat="server" Text="Se Connecter"  CommandName="Login" Width="149px" /></td>
                </tr>
            </table>
                &nbsp;&nbsp;
            </LayoutTemplate>
        </asp:Login>
     
     <br />
     <asp:Label ID="lblLoginErrorDetails" runat="server"></asp:Label>
        <asp:Label ID="LoginError" runat="server" Text="Label"></asp:Label>
    et enfin ma page Login.aspx.vb
    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
    36
    37
    38
    39
    Imports System.Data.SqlClient
    Imports System.Data
    Imports System.IO
    Imports System
    Imports System.DirectoryServices.ActiveDirectory
     
     
    Partial Class Login
        Inherits System.Web.UI.Page
     
     
        Sub Login1_LoginError(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoginError
            Dim Ldap As DirectoryServices.DirectoryEntry = New DirectoryServices.DirectoryEntry("LDAP://monserveur", Login1.UserName.ToString, Login1.Password.ToString)
     
     
            If Login1.UserName = String.Empty And Login1.Password = String.Empty Then
                lblLoginErrorDetails.Text = "Veuillez saisir votre nom d'usager et mot de passe!"
            ElseIf Login1.UserName = String.Empty Then
                lblLoginErrorDetails.Text = "Veuillez saisir votre nom d'usager!"
            ElseIf Login1.Password = String.Empty Then
                lblLoginErrorDetails.Text = "Veuillez saisir votre mot de passe!"
            Else
                Dim userInfo As MembershipUser = Membership.GetUser(Login1.UserName)
                LoginError.Visible = "True"
                If userInfo Is Nothing Then
                    lblLoginErrorDetails.Text = "Aucun usager nommé: " & Login1.UserName & ". Réessayer!"
                Else
                    If Not userInfo.IsApproved Then
                        lblLoginErrorDetails.Text = "Votre compte, n'a pas été approuvé. Réessayer!"
                    ElseIf userInfo.IsLockedOut Then
                        lblLoginErrorDetails.Text = "Nombre de tentative maximum atteinte, votre compte a été désactivé. Contacter l'adminisatrateur!"
                    Else
                        lblLoginErrorDetails.Text = "Mot de passe incorrecte!"
                    End If
                End If
            End If
        End Sub
     
    End Class

  15. #15
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    En attendant vos posts, j'ai modifié mes codes, j'ai tout enlevé dans le web-config et recodé ma page Login.aspx.vb comme ci dessous

    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
     
    Imports System.IO
    Imports System
    Imports System.DirectoryServices
     
    Sub Login1_LoginError(ByVal sender As Object, ByVal e As System.EventArgs) Handles Login1.LoginError
            'Dim Ldap As Directory = New DirectoryServices.DirectoryEntry("LDAP://srv-mails2:389/DC=moov,DC=ga", Login1.UserName.ToString, Login1.Password.ToString)
     
            Dim Ldap As New DirectoryEntry("LDAP://srv-mails2:389/DC=mondomaine,DC=com", UserName.Text, Password.text)
     
            If Login1.UserName = String.Empty And Login1.Password = String.Empty Then
                lblLoginErrorDetails.Text = "Veuillez saisir votre nom d'usager et mot de passe!"
            ElseIf Login1.UserName = String.Empty Then
                lblLoginErrorDetails.Text = "Veuillez saisir votre nom d'usager!"
            ElseIf Login1.Password = String.Empty Then
                lblLoginErrorDetails.Text = "Veuillez saisir votre mot de passe!"
            Else
                Dim userInfo As MembershipUser = Membership.GetUser(Login1.UserName)
                LoginError.Visible = "True"
                If userInfo Is Nothing Then
                    lblLoginErrorDetails.Text = "Aucun usager nommé: " & Login1.UserName & ". Réessayer!"
                Else
                    If Not userInfo.IsApproved Then
                        lblLoginErrorDetails.Text = "Votre compte, n'a pas été approuvé. Réessayer!"
                    ElseIf userInfo.IsLockedOut Then
                        lblLoginErrorDetails.Text = "Nombre de tentative maximum atteinte, votre compte a été désactivé. Contacter l'adminisatrateur!"
                    Else
                        lblLoginErrorDetails.Text = "Mot de passe incorrecte!"
                    End If
                End If
            End If
        End Sub
     
    End Class
    et j'ai cette erreur:
    Message d'erreur du compilateur: BC30002: Type 'DirectoryEntry' non défini.

    Erreur source:



    Ligne 11 : 'Dim Ldap As Directory = New DirectoryServices.DirectoryEntry("LDAP://srv-mails2:389/DC=moov,DC=ga", Login1.UserName.ToString, Login1.Password.ToString)
    Ligne 12 :
    Ligne 13 : Dim Ldap As New DirectoryEntry("LDAP://srv-mails2:389/DC=mondomaine,DC=com", UserName.Text, Password.text)Ligne 14 :
    Ligne 15 : If Login1.UserName = String.Empty And Login1.Password = String.Empty Then


  16. #16
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    c'est bon,j'ai ajouté physiquement le fichier System.DirectoryServices.dll dans mon répertoire bin et l'erreur est passé.
    Je continue à chercher.

  17. #17
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    j'ai revu tout mon code, les syntaxes sont correctes sauf qu'il m'affiche la même erreur
    Échec de la demande d'autorisation de type 'System.DirectoryServices.DirectoryServicesPermission, System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
    est que le lien de ma connexion LDAP est correcte?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Dim Ldap As New DirectoryEntry("LDAP://192.168.100.4:389", DropDownList2.SelectedValue.ToString, passwd.Text)
    Merci de m'éclairer

  18. #18
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Par défaut
    RE:

    Bon désoler je vais etre chiant mais sa marche toujours pas lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Ldap As New DirectoryEntry
                DirectoryEntry("LDAP://nom_du_serveur", TextBox1.Text, TextBox2.Text)
    Error 1 'DirectoryEntry' is a type and cannot be used as an expression. C:\Documents and Settings\thm1bnv\My Documents\Visual Studio 2005\Projects\Projet pour Danielle\Projet pour Danielle\Form2.vb 29
    Et ou puis je trouver mon nom de serveur pour l'AD merci ??

  19. #19
    Membre éclairé Avatar de alicia26
    Inscrit en
    Avril 2007
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 321
    Par défaut
    as tu la librairie System.DirectoryServices.dll quelque part dans le répertoire de ton projet?

  20. #20
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 94
    Par défaut
    alicia26 :
    c'est bon,j'ai ajouté physiquement le fichier System.DirectoryServices.dll dans mon répertoire bin et l'erreur est passé.
    Tu n'es pas obligée d'ajouter la librairie manuellement. D'ailleurs ce n'est peut-être pas la bonne version.
    Si tu utilises Visual, il faut que tu ajoute la référence à ton projet. Pour cela, Clic droit sur ton projet, ajouter une référence. Dans l'onglet .NET, tu dois avoir System.DirectoryServices que tu ajoutes. Au moins, tu es sûr que ta DLL est de la même version que ton environnement.

    maxp74 :
    Pourquoi tu marque sur une autre ligne ?
    DirectoryEntry("LDAP://nom_du_serveur", TextBox1.Text, TextBox2.Text)
    Ce sont les paramètres de ton new.
    Ce serait valable si DirectoryEntry était une fonction.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/03/2012, 23h23
  2. Réponses: 1
    Dernier message: 04/04/2011, 11h05
  3. Réponses: 0
    Dernier message: 06/08/2010, 15h22
  4. Utiliser Active Directory pour se connecter
    Par Cerberes dans le forum Connexions aux bases de données
    Réponses: 5
    Dernier message: 30/11/2007, 11h40
  5. Réponses: 4
    Dernier message: 17/05/2004, 09h57

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