Abrindo o Repositório do Active Directory e recuperando certificados
[CAPICOM é um componente somente de 32 bits que está disponível para uso nos seguintes sistemas operacionais: Windows Server 2008, Windows Vista e Windows XP. Em vez disso, use o .NET Framework para implementar recursos de segurança. Para obter mais informações, consulte Alternativas ao uso de CAPICOM.]
Os certificados podem ser recuperados de um repositório do Active Directory em que os certificados dos usuários de um domínio são armazenados. Um repositório do Active Directory só pode ser aberto no modo somente leitura e os aplicativos não podem adicionar certificados ou remover certificados de um repositório do Active Directory usando CAPICOM.
Em qualquer erro CAPICOM, um valor decimal negativo de Err.Number é retornado. Para obter mais informações, consulte CAPICOM_ERROR_CODE. Para obter informações sobre valores decimais positivos de Err.Number, consulte Winerror.h.
O exemplo a seguir mostra a abertura de um repositório do Active Directory e a recuperação de certificados desse repositório.
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