Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
[CAPICOM è un componente solo a 32 bit disponibile per l'uso nei sistemi operativi seguenti: Windows Server 2008, Windows Vista e Windows XP. Usare invece .NET Framework per implementare le funzionalità di sicurezza. Per altre informazioni, vedere Alternative all'uso di CAPICOM.]
Un documento può essere firmato da più firmatari. Ciò si verifica quando, ad esempio, due o più parti firmano un contratto o una nota spese. Nell'esempio seguente un documento già firmato viene ricevuto da un secondo firmatario. Questo firmatario usa il metodoCoSign per allegare una firma aggiuntiva al documento.
Se si verifica un errore CAPICOM, viene restituito un valore negativo nella proprietà Err.Number. Per altre informazioni sui codici di errore CAPICOM, vedere CAPICOM_ERROR_CODE. Se il codice di errore nella proprietà Err.Number è un valore positivo, l'errore è un errore di Windows. Per informazioni sui codici di errore di Windows, vedere Winerror.h.
Nota
La coassegnazione di un documento richiede inoltre che il cosigner disponga di un certificato disponibile con una chiave privata per creare la firma. Se un firmatario non viene specificato nella chiamata del metodoSigne non è presente alcun certificato in CAPICOM_MY_STORE con una chiave privata associata, il metodo ha esito negativo. Se è presente uno e un solo certificato in CAPICOM_MY_STORE con una chiave privata associata, vengono usati tale chiave e certificato. Se sono presenti più certificati utilizzabili, viene visualizzato un prompt per consentire all'utente di scegliere il certificato desiderato.
Se il metodoCoSign viene usato in un'applicazione basata sul Web, viene sempre visualizzato un prompt per ottenere l'autorizzazione dell'utente prima che venga creata una firma usando la chiave privata del firmatario.
Nell'esempio seguente, i file che contengono il documento da firmare e le firme correnti in tale documento vengono lette, la firma viene firmata e la nuova firma viene scritta in un file. Nell'esempio viene usata una firma scollegata con i dati firmati e la firma in file separati.
Sub CoSignContent(ByVal InputFile1Name As String, ByVal _
InputFile2Name As String, ByVal OutputFileName As String)
On Error GoTo ErrorHandler
Dim c As String
Dim s As String
Dim CS As String
Dim Signobj As New SignedData
Open InputFile1Name for Input as #1
Input #1, s
Close #1
Open InputFileName2 for input as #2
Input #2, c
Close #2
Signobj.Content = c
Signobj.Verify(s)
CS = Signobj.CoSign
Open OutputFileName for output as #3
Write #3, CS
Close # 3
Signobj = Nothing
MsgBox("Cosign finished. Cosignature saved to a file.")
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