Ouverture du magasin Active Directory et récupération des certificats
[CAPICOM est un composant 32 bits uniquement disponible pour une utilisation dans les systèmes d’exploitation suivants : Windows Server 2008, Windows Vista et Windows XP. Utilisez plutôt .NET Framework pour implémenter des fonctionnalités de sécurité. Pour plus d’informations, consultez Alternatives à l’utilisation de CAPICOM.]
Les certificats peuvent être récupérés à partir d’un magasin Active Directory où sont stockés les certificats des utilisateurs d’un domaine. Un magasin Active Directory ne peut être ouvert qu’en mode lecture seule et les applications ne peuvent pas ajouter ou supprimer des certificats dans un magasin Active Directory à l’aide de CAPICOM.
En cas d’erreur CAPICOM, une valeur décimale négative Err.Number est retournée. Pour plus d’informations, consultez CAPICOM_ERROR_CODE. Pour plus d’informations sur les valeurs décimales positives de Err.Number, consultez Winerror.h.
L’exemple suivant illustre l’ouverture d’un magasin Active Directory et la récupération de certificats à partir de ce magasin.
Sub OpenADStore()
On Error GoTo ErrorHandler
Dim mystore As Store
Set mystore = New Store
' Put a string that represents the name of a certificate
' subject in SubjectNameCn. In the following example,
' the * wildcard character is used in the string so that
' the Active Directory store will be searched for all
' certificates with a subject name beginning with 'S.'
Dim SubjectNameCn As String
' The following uses 'cn=' and the * wildcard character.
' Using this string, all certificates in the Active Directory
' store with a subject name beginning with an 'S' would
' be returned.
SubjectNameCn = "CN=S*"
' Active Directory stores can only be opened with read-only
' access.
mystore.Open CAPICOM_ACTIVE_DIRECTORY_USER_STORE, _
SubjectNameCn, CAPICOM_STORE_OPEN_READ_ONLY
If mystore.Certificates.Count < 1 Then
MsgBox "A certificate for " & SubjectNameCn & _
" was not found "
Else
MsgBox "The certificate has been retrieved."
End If
Set mystore = Nothing
Exit Sub
ErrorHandler:
If Err.Number > 0 Then
MsgBox "Visual Basic error found:" & Err.Description
Else
MsgBox "CAPICOM error found : " & Err.Number
End If
End Sub