.NET Framework - =?Utf-8?Q?V=C3=A9rifier_le_mot_de_passe_dans_l'?= =?Utf-8?Q?AD?=

Asked By no.spam.patrick.fredi on 01-Apr-08 02:29 PM
Bonjour,

J'aimerais que mon application vérifie dans l'Active Directory le mot de
passe saisi par l'utilisateur qui se connecte. Est-ce possible ?

Merci.

--
Patrick




no.spam.patrick.fredi replied on 01-Apr-08 04:11 PM
Voici une manière de la faire :

Const ADS_SECURE_AUTHENTICATION = 1

Public Function Verification_Utilisateur_AD(ByVal UserName As String, _
ByVal Domain As String, ByVal Password As String) As Long

Dim MyNamespace As IADsOpenDSObject
Dim X As IADsContainer
Dim oUserName  As String
Dim oPassword  As String
oUserName = UserName
oPassword = Password

'Conception du vrai login dans AD
On Error GoTo CleanUp
If InStr(1, UserName, ".", vbTextCompare) <> 0 And InStr(1, UserName, "@",
vbTextCompare) = 0 Then
oUserName = UserName + "@machin.com"
End If


Set MyNamespace = GetObject("LDAP:")

Set X = MyNamespace.OpenDSObject("LDAP://" + Domain, oUserName, oPassword,
ADS_SECURE_AUTHENTICATION)

Verification_Utilisateur_AD = 0
GoTo FinFonction
CleanUp:
Select Case Err.Number
Case -2147023570 ' mot de passe ou utilisateur incorrect
Verification_Utilisateur_AD = 1
Case -2147016646 'connexion au domaine impossible
Verification_Utilisateur_AD = 2
Case Else 'Erreur inconnue
Verification_Utilisateur_AD = 99
End Select
Set MyNamespace = Nothing
Set X = Nothing
FinFonction:
End Function

--
Patrick