Autentification (login + passwd) sur un domaine windows nt

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 678 fois - Téléchargée 31 fois

Contenu du snippet

Cette fonction permet d'authentifier un utilisateur sur un domaine Windows NT en utilisant les services LDAP.

Source / Exemple :


Function LDAPIdentif (strDC, strDomain, strLogin, strPassword)

' strDC est le domaine interrogé
' strDomain est le domaine d'appartenance de l'utilisateur

On Error Resume Next

  Dim DSODomaine 
  Dim DSOContainer  

  'Utiliser les services d'annuaire LDAP
	    
  Set DSODomaine = GetObject("LDAP:")
  Set DSOContainer = DSODomaine.OpenDSObject("LDAP://" & strDC, strDomain & "\" & strLogin, strPassword, ADS_SECURE_AUTHENTICATION)
	
  If Err.Number <> 0 Then
    ' indebug ("Connection failed : LDAP://" & strDC & ", " &  strDomain & "\\" & strLogin & ", ********")
    LDAPIdentif = False

  Else
    LDAPIdentif = True
  End If
	
  Set DSOContainer = Nothing
  Set DSODomaine = Nothing
		
End Function

Conclusion :


Ne pas oublier d'inclure dans le projet VB la librairie 'Active DS Type Library'.
Par ailleurs, tester l'exécution directement dans l'interface de dév ne fonctionne pas en cas d'échec en authentification (ActiveX...), il faut donc compiler le projet et exécuter.

A voir également

Ajouter un commentaire

Commentaires

lieutnant
Messages postés
1
Date d'inscription
lundi 18 février 2008
Statut
Membre
Dernière intervention
25 février 2008
-
g pas bien compris la fonction
Drouzig
Messages postés
3
Date d'inscription
vendredi 17 décembre 2004
Statut
Membre
Dernière intervention
5 décembre 2005
-
Le titre n'était pas bon, c'est vrai. Je vais donc prendre la peine de poster ma MàJ pour corriger mon premier brouillon. On parle donc bien de LDAP.
NeoBalastik, pour ton erreur -2147463168, travailles-tu sur différents domaines ou forêts? J'ai eu des soucis avec le protocole WinNT, la structure du LDAP et les "trusted domains"...
Neo.balastik
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
4 -
1 : mauvais titre : ton code n'utilise pas le provider LDAP mais WINNT
2 : mauvais code : il ne fonctionne pas. L'erreur -2147463168 remonte tout le temps.
-> tu utilises mal ADSI
3 : le paramètre strDomaine de ta fonction ne sert strictement à rien

Voici une fonction qui fonctionne :

Public Function AuthenticateUser(ByVal strDomaine As String, ByVal strUserID As String, ByVal strPassword As String) As Boolean

On Error Resume Next

Dim oDSO As IADsOpenDSObject
Dim oDomaine As IADsDomain

Set oDSO = GetObject("WinNT:")
Set oDomaine = oDSO.OpenDSObject("WinNT://" & strDomaine, strUserID, strPassword, ADS_SECURE_AUTHENTICATION)

AuthenticateUser (Err.Number 0)

' Libération des objets
Set oDSO = Nothing
Set oDomaine = Nothing

End Function
cs_hacko
Messages postés
16
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
8 mai 2007
-
Sorry, mais je vois pas de ldap là dedans, tu utilise uniquement le protocole WINNT !!

Mais sinon, c'est quand même intéressant !!

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.