Bonjour,
J'ai un souci sur un programme VB qui s'exécute sur des postes XP.
* sur les postes sans cartes ç puces, tout est OK,
* Sur les postes avec cartes à puces, j'ai l'apparition de fenêtre "Veuillez saisir votre code pin" à chaque connexion, recherche ou changement de mot de passe dans l'AD (ActiveDirectory) au travers de mon code source, ce qui est génant.

Il faut savoir que le compte de connexion windows est le même que le compte utilisateur dans l'AD et mon programme ci-dessous utilise le compte de l'utilisateur et son mot de passe (saisi par lui-même) pour se connecter à l'AD.

Quelqu'un peut-il me dire pourquoi Windows (au travers de la carte à puces) fait apparaitre cette fenêtre et s'il n'y a pas un moyen de l'éviter ?

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
Private Sub Sub_Test()
 
     Dim Str_ADsPath                As String
 
     Dim objDSO                     As IADsOpenDSObject    ' Objet de 
connexion au domaine sélectionné (vérification des identifiants)
     Dim Container                  As IADsContainer    ' Objet de 
connexion au domaine sélectionné (vérification des identifiants)
     Dim objuser                    As IADsUser    ' Objet utilisateur ADSI
     Dim uid_adm_win_AD             As String
     Dim cpt_search                 As String
     Dim Str_New_PassWord           As String
     Dim Str_Retour                 As String
     Dim i                          As Integer
     cpt_search = "T0001041"
     uid_adm_win_AD = "AREA01\" & cpt_search
 
     pwd_adm_win_AD = "ancien_motdepasse"
     Str_New_PassWord = "nouveau_motdepasse"
 
     Str_ADsPath = "LDAP://monserverActiveDirectory:636"
 
     Set objDSO = GetObject("LDAP:")    ' On établi la connexion au domaine
     Set Container = objDSO.OpenDSObject(Str_ADsPath, _
                                         uid_adm_win_AD, _
                                         pwd_adm_win_AD, _
                                         ADS_SECURE_AUTHENTICATION +
ADS_USE_SSL)    ''''''''' LA POP-UP APPARAIT
 
 
     Str_Retour = Fct_Parcours(Container, "CN=" & cpt_search, objuser)
 
     ' modification du mot de passe
     objuser.ChangePassword pwd_adm_win_AD, Str_New_PassWord
         ' '''''''' LA POP-UP APPARAIT
 
     objuser.SetInfo
 
     Set objuser = Nothing
     Set Container = Nothing
     Set objDSO = Nothing
 
 
End Sub
 
Private Function Fct_Parcours(Container As Object, ByRef Str_Recherche 
As String, Obj_Usr As IADsUser)
     Dim Obj_S As IADs
     Dim Str_Emplacement As String
 
     For Each Obj_S In Container
         If Str_Emplacement = "" Then
             If UCase(Obj_S.Name) = Str_Recherche Then
                 Set Obj_Usr = Obj_S
                 Str_Emplacement = Obj_S.distinguishedName
             Else
                 Str_Emplacement = Fct_Parcours(Obj_S, Str_Recherche, 
Obj_Usr)
             End If
         End If
     Next Obj_S
     Fct_Parcours = Str_Emplacement
End Function
Merci de votre aide.