Verwenden von Speichern an unterschiedlichen Standorten
[CAPICOM ist eine nur 32-Bit-Komponente, die für die Verwendung in den folgenden Betriebssystemen verfügbar ist: Windows Server 2008, Windows Vista und Windows XP. Verwenden Sie stattdessen die .NET Framework, um Sicherheitsfeatures zu implementieren. Weitere Informationen finden Sie unter Alternativen zur Verwendung von CAPICOM.]
Im folgenden Beispiel werden Aspekte der Arbeit mit dem Store -Objekt veranschaulicht. Es zeigt das Öffnen von Stores im CAPICOM _ MEMORY _ STORE, CAPICOM _ CURRENT USER STORE und _ _ CAPICOM _ LOCAL MACHINE _ _ STORE.
Das Beispiel zeigt, wie Zertifikate aus einem geöffneten Speicherexportiert, die exportierten Zertifikate in eine Datei geschrieben, wieder eingelesen und in einen anderen Speicher importiert werden. Die neu importierten Zertifikate werden dann aufzählt und angezeigt.
Bei einem 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.
Sub OpenStores()
On Error GoTo ErrorHandler
'Open Memory, current user, and local machine stores
Dim MemoryStore As New Store
Dim CurrentUserStore As New Store
Dim LocalMachineStore As New Store
Dim NumCerts As Integer
MemoryStore.Open(CAPICOM_MEMORY_STORE, "MemStore", _
CAPICOM_STORE_OPEN_READ_WRITE)
CurrentUserStore.Open(CAPICOM_CURRENT_USER_STORE, _
CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY)
LocalMachineStore.Open(CAPICOM_LOCAL_MACHINE_STORE, _
CAPICOM_CA_STORE, CAPICOM_STORE_OPEN_READ_ONLY)
' Check the number of certificates in the stores.
NumCerts = MemoryStore.Certificates.Count
MsgBox("There are " & NumCerts & _
" certificates in the memory store. ")
NumCerts = CurrentUserStore.Certificates.Count
MsgBox("There are " & NumCerts & _
" certificates in the current user store. ")
NumCerts = LocalMachineStore.Certificates.Count
MsgBox("There are " & NumCerts & _
" certificates in the local machine store. ")
' Export the certificates in the current user MY store
' to a file.
Dim ExportString As String
ExportString = CurrentUserStore.Export
Open "Exportcerts.txt" For Output As #1
Write #1, ExportString
Close #1
' Read the store the file.
Dim importString As String
Open "exportcerts.txt" For Input As #2
Input #2, importString
Close #2
MemoryStore.Import(importString)
' Check the number of certificates in the memory store after
' import()
NumCerts = MemoryStore.Certificates.Count
MsgBox("There are " & NumCerts & _
" certificates now in the memory store. ")
' Enumerate the certificates in the memory store and display each
' certificate
Dim i As Long
For i = 1 To NumCerts
MemoryStore.Certificates.Item(i).Display()
Next i
' Release the store objects
MemoryStore = Nothing
CurrentUserStore = Nothing
LocalMachineStore = 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