Firma digitale in C#: Firmare i PDF in modo programmatico

author avatar

2024-02-22 15:36:31 • Pubblicato in: Soluzione PDF - Sicurezza e Firma • Soluzioni comprovate

Per firmare i documenti digitali non è necessario uno strumento di eSign. Ma come fare? Sono disponibili C# e altri linguaggi di programmazione. Quindi, invece di uno strumento specializzato per l'eSign, tutto ciò di cui avete bisogno è un IDE. Molto probabilmente ne avete già uno se siete programmatori. Di conseguenza, potete immergervi subito. Se siete interessati alla firma digitale C#, continuate a leggere.

Non preoccupatevi se non siete programmatori. Abbiamo anche fornito uno strumento alternativo di facile utilizzo, Wondershare PDFelement!

Parte 1. Come utilizzare la firma digitale C# per aggiungere un campo di firma certificata a un PDF

Prima di poter utilizzare C# per firmare un PDF, è necessario aggiungere un campo firma. È il campo in cui viene inserita la firma. Non preoccupatevi.

  1. Utilizzate questo codice per ottenere il PDF e la pagina:

using (PDFDoc doc = nuovo PDFDoc(docpath)) 
{ Page page1 = doc.GetPage(1); }
  1. Creare un campo di testo che può essere bloccato con la funzione di autorizzazione del campo. Utilizzare il seguente codice:

TextWidget annot1 = TextWidget.Create(doc, new Rect(50, 550, 350, 600), "new_text_field");
page1.AnnotPushBack(annot1);
  1. Utilizzando il suo frammento di codice, aggiungete un campo firma al PDF:


 DigitalSignatureField certification_sig_field = doc.CreateDigitalSignatureField(cert_field_name);
SignatureWidget widgetAnnot = SignatureWidget.Create(doc, new Rect(0, 100, 200, 150), certification_sig_field); page1.AnnotPushBack(widgetAnnot);

  1. Supponiamo di aver pianificato l'aspetto di un campo firma. Inseritelo nel PDF utilizzando il codice seguente:

Image img = Image.Create(doc, appearance_image_path); widgetAnnot.CreateSignatureAppearance(img);

È possibile saltare questo passaggio se non è stato creato un campo firma.

  1. Preparare il livello di autorizzazione di blocco del documento, che verrà applicato una volta che il documento è stato certificato.

certification_sig_field.SetDocumentPermissions(DigitalSignatureField.DocumentPermissions.e_annotating_formfilling_signing_allowed);
  
  1. Preparate ora il blocco del campo di testo creato nel passaggio 2.

string[] fields_to_lock = new string[1]; fields_to_lock[0] = "new_text_field"; certification_sig_field.SetFieldPermissions(DigitalSignatureField.FieldPermissions.e_include, fields_to_lock);
certification_sig_field.CertifyOnNextSave(private_key_file_path, keyfile_password);
  1. Richiamare il metodo Save per salvare il documento. PDFNet utilizzerà le informazioni fornite per firmare il documento.

doc.Save(outpath, 0);

Ecco come dovrebbe apparire il codice:


    using (PDFDoc doc = nuovo PDFDoc(docpath))
{
Page page1 = doc.GetPage(1);
TextWidget annot1 = TextWidget.Create(doc, new Rect(50, 550, 350, 600), "new_text_field");
page1.AnnotPushBack(annot1);
DigitalSignatureField certification_sig_field = doc.CreateDigitalSignatureField(cert_field_name);
SignatureWidget widgetAnnot = SignatureWidget.Create(doc, new Rect(0, 100, 200, 150), certification_sig_field); page1.AnnotPushBack(widgetAnnot);
Image img = Image.Create(doc, appearance_image_path); widgetAnnot.CreateSignatureAppearance(img);
certification_sig_field.SetDocumentPermissions(DigitalSignatureField.DocumentPermissions.e_annotating_formfilling_signing_allowed);
string[] fields_to_lock = new string[1]; fields_to_lock[0] = "asdf_test_field";
certification_sig_field.SetFieldPermissions(DigitalSignatureField.FieldPermissions.e_include, fields_to_lock);
certification_sig_field.CertifyOnNextSave(private_key_file_path, keyfile_password);
doc.Save(outpath, 0);
}

Parte 2. Come utilizzare una firma digitale C# per firmare un PDF

Ora che il PDF è dotato di un campo per la firma, è finalmente possibile firmarlo. Per firmarlo con una firma digitale C#, seguite questi passaggi:

  1. Utilizzando il codice seguente, è possibile ottenere il campo firma non firmato:

(PDFDoc doc = new PDFDoc(docpath)) 
{
Field found_approval_field = doc.GetField(approval_field_name);
DigitalSignatureField approval_digsig_field = new DigitalSignatureField(found_approval_field);
}
  1. Utilizzando questo snippet C#, preparare la firma e il gestore di firma per la firma:

approval_digsig_field.SignOnNextSave(private_key_file_path, keyfile_password);
  1. Per salvare il documento con la firma, utilizzare un'operazione di salvataggio incrementale.

doc.Save(outpath, SDFDoc.SaveOptions.e_incremental);

Il codice finale dovrebbe essere simile a questo:


using (PDFDoc doc = new PDFDoc(docpath))
{
Field found_approval_field = doc.GetField(approval_field_name);
DigitalSignatureField approval_digsig_field = new DigitalSignatureField(found_approval_field);
approval_digsig_field.SignOnNextSave(private_key_file_path, keyfile_password);
doc.Save(outpath, SDFDoc.SaveOptions.e_incremental);
}

Parte 3. Come utilizzare la firma digitale in C# per verificare una firma certificata su un PDF

È possibile verificare una firma certificata anche in C#. Tuttavia, è necessaria un'API speciale per la firma digitale, come l'API di verifica della firma digitale di apryse Docs.

A cosa serve questa operazione? È necessario assicurarsi che le firme digitali siano autentiche e non false. Inoltre, garantisce che l'accordo sia legalmente applicabile.

Seguite questi passaggi per verificare una firma digitale in C#:

  1. Selezionare un livello di sicurezza da utilizzare. Quindi, modificare le opzioni di verifica desiderate.

VerificationOptions opts = new VerificationOptions(VerificationOptions.SignatureVerificationSecurityLevel.e_compatibility_and_archiving);
  1. Aggiungere la radice di fiducia all'elenco dei certificati affidabili in VerificationOptions.

opts.AddTrustedCertificate(in_public_key_file_path);
  1. Verificare la firma digitale.

PDFDoc.SignaturesVerificationStatus result = doc.VerifySignedDigitalSignatures(opts);

L'intero programma dovrebbe avere questo aspetto:


using (PDFDoc doc = new PDFDoc(in_docpath))
{
VerificationOptions opts = new VerificationOptions(VerificationOptions.SignatureVerificationSecurityLevel.e_compatibility_and_archiving);
opts.AddTrustedCertificate(in_public_key_file_path);
PDFDoc.SignaturesVerificationStatus result = doc.VerifySignedDigitalSignatures(opts);
}

Sono possibili i seguenti risultati:

  • SignaturesVerificationStatus.e_unsigned:Non ci sono campi firma firmati nel PDF.
  • SignaturesVerificationStatus.e_failure: Vi è un fallimento nella verifica di almeno una firma. Esclude le questioni di fiducia.
  • SignaturesVerificationStatus.e_untrusted: Non è stato possibile stabilire l'attendibilità di almeno una firma.
  • SignaturesVerificationStatus.e_verified:Le firme del documento sono tutte verificate. Tenere presente che i campi non firmati vengono saltati.

Parte 4. Utilizzate Wondershare PDFelement per aggiungere una firma certificata a un PDF senza utilizzare C#.

L'uso della firma digitale C# per firmare i PDF presenta un grave difetto. È eccessivamente tecnico. Per farlo, è necessario essere un programmatore o almeno conoscere C#. Di conseguenza, è impossibile per i non addetti ai lavori.

Wondershare PDFelement è uno degli strumenti più semplici per firmare i documenti digitali. . Wondershare PDFelement è uno strumento versatile perché può essere utilizzato da chiunque. È noto per la sua facilità d'uso. Infatti, rende molto semplice la firma o la raccolta di firme.

Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware
Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware

Utilizzo di Wondershare PDFelement per firmare un documento

Tenete presente che Wondershare PDFelement eSign è conforme agli standard legali e di settore come ISO 27001 e HIPAA. In questo modo potete essere certi che i documenti firmati sono autentici e sicuri. Include persino un verificatore di certificati!

Ma basta con i preamboli. Vi mostriamo come utilizzare Wondershare PDFelement eSign.

Parte 4.1. Come inviare documenti PDF da firmare

Proprio così. Wondershare PDFelement non si limita a firmare i PDF. Permette anche di raccogliere le firme di altre persone. È possibile utilizzare questa funzione per completare gli accordi anche se non si è fisicamente presenti. Wondershare PDFelement invia anche notifiche quando qualcuno firma un documento. In questo modo, non perderete mai un colpo e potrete passare subito alla fase successiva.

Ecco come utilizzare Wondershare PDFelement per raccogliere le firme:

Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware
Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware

  1. Aprite l'accordo che richiede la firma di altri in Wondershare PDFelement. Fare clic suProteggi > Richiedi eSign.
richiesta di firma su wondershare pdfelement
  1. Si aprirà una nuova finestra. Compilare il campo "Aggiungi destinatari" con gli indirizzi e-mail dei firmatari.
  2. Scegliere se firmare il documento per primo o per ultimo. Selezionate la casella appropriata per la vostra scelta.
  3. Impostare l'ordine di firma e la frequenza degli aggiornamenti in "Impostazioni".
creazione della richiesta di ensign
  1. Clicca Avanti.
  2. Trascinare e rilasciare per aggiungere e assegnare i campi firma necessari.
incorporare i campi della firma
  1. Clicca Avanti.

Parte 4.2. Come utilizzare Wondershare PDFelement per firmare i PDF

E se siete voi a dover firmare il documento? Come detto in precedenza, Wondershare PDFelement consente di farlo. Ci sono due approcci. Per firmare il PDF si può utilizzare l'applicazione per desktop o il collegamento via e-mail. Esamineremo entrambi i metodi:

A. Utilizzare l'app desktop di Wondershare PDFelement per firmare i PDF
  1. Accedere al proprio account in Wondershare PDFelement. Clicca Accordosul pannello sinistro. Creare un nuovo contratto chiamato "Waiting for me".

Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware
Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware

apertura di un contratto che richiede la firma
  1. Fare clic sul pulsante Firmaper accedere ai campi di firma.
  2. Per firmare, selezionare il campo della firma.
individuazione dei campi di firma appropriati
  1. Digitare, disegnare o caricare un'immagine per creare la firma. Cliccare OK.
creazione di una firma digitale
  1. Fare clic su Clicca per firmare nella barra di notifica in basso a destra, quindi fare clic suAvanti..
Per firmare il contratto è stato utilizzato Wondershare PDFelement.
B. Utilizzare l'applicazione desktop Wondershare PDFelement per firmare i PDF

Supponiamo di non essere a casa. Non si ha con sé il portatile. I documenti possono comunque essere firmati utilizzando il pulsante di firma sulla notifica e-mail. Per farlo, seguite i passaggi seguenti:

  1. Aprire la notifica e-mail di richiesta di eSign. Selezionare l'opzione Firma il documento

Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware
Prova Gratis
download sicuro 100% sicuro | senza pubblicità | senza malware

notifica di richiesta di firma via e-mail
  1. Selezionare la casella Accetto l'EULA e l'informativa sulla privacy per l'utilizzo di documenti e firme elettroniche Fare clic su Continua.
accettare l'EULA e l'informativa sulla privacy
  1. Selezionate il campo della firma che richiede la vostra firma. Creare la firma se è la prima volta che si firmano documenti di questo tipo. Si può Tipo, disegno, o Caricareun'immagine.
creazione di una firma digitale
  1. Fare clic su Salva per salvare la firma e applicarla al documento in futuro.

Conclusione

Le firme digitali possono essere aggiunte ai PDF utilizzando C#. Tuttavia, ciò non implica che si debba studiare programmazione per farlo. Esistono alternative, molte delle quali sono più semplici da implementare.

Wondershare PDFelement è uno dei migliori strumenti per firmare i PDF. È una soluzione PDF con numerosi strumenti utili. La sua funzione eSign, conforme agli standard, consente di firmare facilmente i PDF. Inoltre, consente di inviare richieste di firma ad altri. Di conseguenza, molti preferiscono Wondershare PDFelement come strumento di firma elettronica. Detto questo, è uno strumento da tenere in considerazione.

Download Gratis o Acquista PDFelement proprio adesso!

Download Gratis o Acquista PDFelement proprio adesso!

Acquista PDFelement proprio adesso!

Acquista PDFelement proprio adesso!

author avatar

Salvatore Marin

staff Editor

(Click to rate this post)

Generally rated4.5(105participated)

Home > Soluzione PDF - Sicurezza e Firma > Firma digitale in C#: Firmare i PDF in modo programmatico