aggiungi firma digitale al PDF C#

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# .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

Firma digitalmente PDF in C#

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.

articoli Correlati