Opening the Active Directory Store and Retrieving Certificates
[CAPICOM is a 32-bit only component that is available for use in the following operating systems: Windows Server 2008, Windows Vista, and Windows XP. Instead, use the .NET Framework to implement security features. For more information, see Alternatives to Using CAPICOM.]
Certificates can be retrieved from an Active Directory store where the certificates of users of a domain are stored. An Active Directory store can only be opened in the read-only mode and applications cannot added certificates to or remove certificates from an Active Directory store using CAPICOM.
On any CAPICOM error, a negative decimal value of Err.Number is returned. For more information, see CAPICOM_ERROR_CODE. For information about positive decimal values of Err.Number, see Winerror.h.
The following example shows opening an Active Directory store and retrieving certificates from that store.
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