Freigeben über


Hinzufügen von Zertifikaten zu einem Zertifikatspeicher

[CAPICOM ist eine nur 32-Bit-Komponente, die für die Verwendung in den folgenden Betriebssystemen verfügbar ist: Windows Server 2008, Windows Vista, Windows XP. Verwenden Sie stattdessen die .NET Framework, um Sicherheitsfeatures zu implementieren. Weitere Informationen finden Sie unter Alternativen zur Verwendung von CAPICOM.]

Zertifikate können zu Zertifikatspeichern hinzugefügt oder daraus entfernt werden, wenn der Speicher mit Lese-/Schreibberechtigung geöffnet wird. Active Directory-Speicher erhalten keine Lese-/Schreibberechtigungen. Während Zertifikate zu Arbeitsspeicherspeichern hinzugefügt oder aus diesen entfernt werden können, werden Änderungen in Speicherspeichern nicht zwischen Sitzungen beibehalten.

Zertifikate können mit der Add-Methode zu einem Zertifikatspeicher hinzugefügt werden, der mit lese-/schreibberechtigung geöffnet wird. Ein Zertifikat kann mithilfe der Remove-Methode aus einem Zertifikatspeicher entfernt werden, der mit lese-/schreibberechtigung geöffnet wird. Neue Speicher können an den CAPICOM_CURRENT_USER_STORE- und CAPICOM_LOCAL_MACHINE_STORE-Speicherorten erstellt und gespeichert werden. Neu erstellte Speicher an einem dieser Speicherorte können mit Lese-/Schreibberechtigung geöffnet werden.

Im folgenden Beispiel werden zwei Zertifikatspeicher geöffnet. Zertifikate von Antragstellern, deren Nachnamen mit F beginnen, werden aus dem Active Directory-Speicher abgerufen. Der CAPICOM_CURRENT_USER_STORE, CAPICOM_CA_STORE Speicher wird dann als Lese-/Schreibspeicher geöffnet, und das erste Zertifikat aus der Sammlung von Zertifikaten im Active Directory-Speicher wird den Zertifikaten im CAPICOM_CA_STORE hinzugefügt.

Zu Demonstrationszwecken zeigt das Beispiel die Eröffnung von Geschäften in den CAPICOM_MEMORY_STORE, CAPICOM_CURRENT_USER_STORE und CAPICOM_LOCAL_MACHINE_STORE Standorten. Das Beispiel zeigt das Exportieren aller Zertifikate aus einem geöffneten Speicher, schreiben die exportierten Zertifikate in eine Datei, lesen sie wieder ein und importieren sie in einen anderen Speicher. Die neu importierten Zertifikate werden aufgelistet und angezeigt.

Bei jedem CAPICOM-Fehler wird ein negativer Dezimalwert von Err.Number zurückgegeben. Weitere Informationen finden Sie unter CAPICOM_ERROR_CODE. Informationen zu positiven Dezimalwerten von Err.Number finden Sie unter Winerror.h.

Das folgende Beispiel zeigt das Öffnen von Zertifikatspeichern mithilfe der frühen Bindung in der Deklaration der Store-Objekte und beim Erstellen einer instance dieser Objekte.

Sub AddCert()
On Error GoTo ErrorHandler
' The following shows two different ways to declare and
' create a store object.

Dim myADstore As New Store

Dim myCAstore As Store
Set myCAstore = New Store

' In this example, the Active Directory store will be searched for a 
' certificate with a subject name that begins with the letter F. 
' This is done by using the string "SN=F*" as the name of the store.

Dim SubjectNameSN As String
SubjectNameSN = "SN=F*"

' Active Directory stores can only be opened with read-only
' access.

myADstore.Open CAPICOM_ACTIVE_DIRECTORY_USER_STORE,
                SubjectNameSN , CAPICOM_STORE_OPEN_READ_ONLY

'  This example assumes that the store opened and that
'  at least one certificate was returned.
'  A complete application would ensure that at least one certificate
'  was in the store before proceeding and would
'  also select one or more of the certificates returned
'  to be added instead of using the first certificate
'  in the collection.

'  Open the MY store so that a certificate can be added.

myCAstore.Open CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
                    CAPICOM_STORE_OPEN_READ_WRITE

myCAstore.Add myADstore.certificates.Item(1)

' Release the two store objects.

Set myCAstore = Nothing
Set myADstore = 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