Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick
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
"Patrick" wrote:
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
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
"Patrick" wrote:
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 ?
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
"Patrick" wrote:
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 ?