Le firme digitali vengono utilizzate per proteggere i documenti PDF prima che vengano condivisi con terze parti. La firma digitale di un documento PDF consente di rilevare eventuali manomissioni verificando il documento mediante la firma digitale. Per proteggere i documenti PDF a livello di codice utilizzando le firme digitali, questo articolo ti mostrerà come aggiungere firme digitali in un file PDF in C#. Imparerai anche come verificare le firme digitali nei file PDF in C#.
- API C# per firmare digitalmente PDF
- Aggiungi firme digitali nei documenti PDF usando C#
- Firma digitalmente documenti PDF con un server Timestamp in C#
- Verifica la firma digitale in PDF utilizzando C#
API C# .NET per aggiungere firme digitali in PDF
Per aggiungere e verificare le firme digitali nei documenti PDF, utilizzeremo l’API Aspose.PDF for .NET, una potente API di manipolazione PDF per creare, modificare, convertire e firmare digitalmente documenti PDF. È possibile scaricare Aspose.PDF per .NET o installarlo utilizzando uno dei seguenti modi in Visual Studio:
Gestione pacchetti NuGet
Console di gestione dei pacchetti
PM> Install-Package Aspose.PDF
Aggiungi la firma digitale a un PDF in C#
Di seguito sono riportati i passaggi per firmare un documento PDF utilizzando Aspose.PDF per .NET.
- Crea un oggetto della classe Document e inizializzalo con il percorso del documento PDF.
- Crea un oggetto della classe PdfFileSignature e inizializzalo con l’oggetto della classe Document.
- Crea un oggetto della classe PKCS7 e inizializzalo con un percorso del certificato e una password.
- Creare e inizializzare l’oggetto della classe DocMDPSignature per il tipo di firma MDP.
- Crea un Rettangolo per il posizionamento della firma.
- Firma digitalmente il documento PDF utilizzando il metodo PdfFileSignature.Certify().
- Salva il documento usando il metodo PdfFileSignature.Save().
L’esempio di codice seguente mostra come aggiungere una firma digitale a un documento PDF in C#.
// Carica documento PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
{
PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
// Imposta l'aspetto della firma
signature.SignatureAppearance = @"aspose-logo.png";
// Crea uno dei tre tipi di firma
signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
// Salva il file PDF firmato digitalmente
signature.Save("Digitally Signed PDF.pdf");
}
}
C# Aggiungi la firma digitale al PDF utilizzando il server Timestamp
Puoi anche aggiungere una firma digitale a un documento PDF con il server TimeStamp fornendone i dettagli utilizzando la classe TimestampSettings. L’esempio di codice seguente mostra come firmare digitalmente un documento PDF con un server TimeStamp in C#.
// Carica documento PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
{
PKCS7 pkcs = new PKCS7("certificate.pfx", "WebSales"); // Use PKCS7/PKCS7Detached objects
TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
pkcs.TimestampSettings = timestampSettings;
System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
// Crea uno dei tre tipi di firma
signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
// Salva il file PDF di output
signature.Save("Output.pdf");
}
}
Verifica PDF firmato digitalmente in C#
Di seguito sono riportati i passaggi per verificare la firma digitale in un documento PDF:
- Crea un oggetto della classe Document e inizializzalo con il percorso del documento PDF.
- Crea un oggetto della classe PdfFileSignature e inizializzalo con l’oggetto della classe Document.
- Accedi a tutte le firme del documento PDF.
- Verifica la validità della firma utilizzando il metodo PdfFileSignature.VerifySigned().
L’esempio di codice seguente mostra come verificare la firma digitale in PDF usando C#.
// Carica documento PDF
using (Document pdfDocument = new Document("Document.pdf"))
{
using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
{
IList<string> sigNames = signature.GetSignNames();
if (sigNames.Count > 0) // Any signatures?
{
if (signature.VerifySigned(sigNames[0] as string)) // Verify first one
{
if (signature.IsCertified) // Certified?
{
if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
{
// Fare qualcosa
}
}
}
}
}
}
Prova Aspose.PDF per .NET gratuitamente
Puoi ottenere una licenza temporanea gratuita per provare a utilizzare Aspose.PDF per .NET.
Conclusione
In questo articolo hai imparato come aggiungere firme digitali ai file PDF in C#.NET. Inoltre, hai visto come verificare i file PDF con firma digitale a livello di codice in C#. Puoi semplicemente installare Aspose.PDF per .NET nelle tue applicazioni e firmare digitalmente i tuoi file PDF senza problemi.