ลงนามด้วยสมาร์ทการ์ดโดยใช้ลายเซ็นไฟล์ PDF

การแนะนำ

ในยุคดิจิทัล การรักษาความปลอดภัยเอกสารมีความสำคัญมากกว่าที่เคย ไม่ว่าจะเป็นสัญญา ข้อตกลง หรือข้อมูลสำคัญใดๆ ก็ตาม การรับรองว่าเอกสารเป็นของแท้และไม่ถูกดัดแปลงถือเป็นสิ่งสำคัญที่สุด ป้อนลายเซ็นดิจิทัล! วันนี้เราจะเจาะลึกวิธีการลงนามไฟล์ PDF โดยใช้สมาร์ทการ์ดด้วย Aspose.PDF สำหรับ .NET ไลบรารีอันทรงพลังนี้ช่วยให้นักพัฒนาสามารถจัดการและสร้างเอกสาร PDF ได้อย่างมีประสิทธิภาพ รวมถึงการเพิ่มลายเซ็นดิจิทัลที่ปลอดภัย ดังนั้น หยิบสมาร์ทการ์ดของคุณแล้วเริ่มกันเลย!

ข้อกำหนดเบื้องต้น

ก่อนที่เราจะลงรายละเอียดในการลงนามในไฟล์ PDF เรามาตรวจสอบกันก่อนว่าคุณได้เตรียมทุกอย่างที่จำเป็นแล้ว นี่คือรายการตรวจสอบที่จะช่วยให้คุณเตรียมตัวได้:

  1. Aspose.PDF สำหรับ .NET: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารี Aspose.PDF แล้ว คุณสามารถดาวน์โหลดได้จากเว็บไซต์.
  2. Visual Studio: สภาพแวดล้อมการพัฒนาที่คุณสามารถเขียนและรันโค้ด .NET ได้
  3. สมาร์ทการ์ด: คุณจะต้องมีสมาร์ทการ์ดที่มีใบรับรองดิจิทัลที่ถูกต้องติดตั้งอยู่
  4. ความเข้าใจพื้นฐานเกี่ยวกับ C#: ความคุ้นเคยกับการเขียนโปรแกรม C# จะเป็นประโยชน์เนื่องจากเราจะเขียนโค้ดสั้นๆ ในภาษานี้
  5. เอกสาร PDF: ไฟล์ PDF ตัวอย่าง (เช่นblank.pdf) เพื่อทดสอบกระบวนการลงนามของเรา

เมื่อมีข้อกำหนดเบื้องต้นเหล่านี้แล้ว คุณก็พร้อมที่จะดำดิ่งสู่โค้ดได้เลย!

แพ็คเกจนำเข้า

ขั้นแรก เรามาทำการนำเข้าแพ็คเกจที่จำเป็นกันก่อน คุณจะต้องเพิ่มการอ้างอิงไปยังไลบรารี Aspose.PDF ในโปรเจ็กต์ของคุณ วิธีดำเนินการมีดังนี้:

  1. เปิด Visual Studio
  2. สร้างโครงการใหม่หรือเปิดโครงการที่มีอยู่
  3. คลิกขวาที่โครงการของคุณใน Solution Explorer และเลือกManage NuGet Packages.
  4. ค้นหาAspose.PDF และติดตั้งเวอร์ชั่นล่าสุด
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

ตอนนี้เรามีแพ็คเกจที่จำเป็นนำเข้าแล้ว มาแบ่งโค้ดทีละขั้นตอนกัน

ขั้นตอนที่ 1: ตั้งค่าเอกสารของคุณ

ขั้นตอนแรกในกระบวนการของเราคือการตั้งค่าเอกสาร PDF ที่เราต้องการลงนาม คุณสามารถทำได้ดังนี้:

string dataDir = "YOUR DOCUMENTS DIRECTORY";
Document doc = new Document(dataDir + "blank.pdf");

ในสไนปเป็ตนี้ เราจะกำหนดเส้นทางไปยังไดเร็กทอรีเอกสารของเราและสร้างอินสแตนซ์ของDocument คลาสที่ใช้ไฟล์ PDF ตัวอย่างชื่อblank.pdf . อย่าลืมเปลี่ยน"YOUR DOCUMENTS DIRECTORY" ด้วยเส้นทางจริงที่ PDF ของคุณตั้งอยู่

ขั้นตอนที่ 2: เริ่มต้นใช้งาน PdfFileSignature

ต่อไปเราจะเริ่มต้นPdfFileSignature ชั้นเรียนซึ่งรับผิดชอบในการจัดการกระบวนการการลงนาม

using (Facades.PdfFileSignature pdfSign = new Facades.PdfFileSignature())
{
    pdfSign.BindPdf(doc);

ที่นี่เราสร้างอินสแตนซ์ของPdfFileSignatureและผูกเข้ากับเอกสาร PDF ของเรา ขั้นตอนนี้จะช่วยเตรียมเอกสารสำหรับการลงนาม

ขั้นตอนที่ 3: เข้าถึงใบรับรองสมาร์ทการ์ด

ตอนนี้มาถึงส่วนสำคัญแล้ว นั่นคือการเข้าถึงใบรับรองดิจิทัลที่จัดเก็บอยู่ในสมาร์ทการ์ดของคุณ ซึ่งเราสามารถทำได้ดังนี้:

เปิดร้านรับใบรับรอง

System.Security.Cryptography.X509Certificates.X509Store store = new System.Security.Cryptography.X509Certificates.X509Store(System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser);
store.Open(System.Security.Cryptography.X509Certificates.OpenFlags.ReadOnly);

เราเปิดที่เก็บใบรับรองที่ตั้งอยู่ในโปรไฟล์ผู้ใช้ปัจจุบัน ซึ่งจะช่วยให้เราเข้าถึงใบรับรองที่ติดตั้งบนเครื่องของคุณ รวมถึงใบรับรองบนสมาร์ทการ์ดของคุณด้วย

เลือกใบรับรอง

System.Security.Cryptography.X509Certificates.X509Certificate2Collection sel =
    System.Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromCollection(
        store.Certificates, null, null, System.Security.Cryptography.X509Certificates.X509SelectionFlag.SingleSelection);

รหัสนี้จะแจ้งให้ผู้ใช้เลือกใบรับรองจากคอลเล็กชัน อินเทอร์เฟซผู้ใช้จะแสดงใบรับรองทั้งหมดที่มีอยู่ ช่วยให้คุณเลือกใบรับรองที่เชื่อมโยงกับสมาร์ทการ์ดของคุณได้

ขั้นตอนที่ 4: สร้างลายเซ็นภายนอก

เมื่อคุณเลือกใบรับรองแล้ว ขั้นตอนถัดไปคือการสร้างลายเซ็นภายนอกโดยใช้ใบรับรองที่เลือก

Aspose.Pdf.Forms.ExternalSignature externalSignature = new Aspose.Pdf.Forms.ExternalSignature(sel[0]);

ที่นี่เราสร้างอินสแตนซ์ของExternalSignature โดยใช้ใบรับรองที่เลือก วัตถุนี้จะใช้ในการลงนามในเอกสาร PDF

ขั้นตอนที่ 5: ตั้งค่าลักษณะลายเซ็น

ต่อไปเรามาตั้งค่าลักษณะของลายเซ็นกัน คุณสามารถปรับแต่งลักษณะของลายเซ็นบนเอกสารได้จากตรงนี้

pdfSign.SignatureAppearance = dataDir + "demo.png";

ในสไนปเป็ตนี้ เราจะระบุลักษณะของลายเซ็นโดยระบุเส้นทางไปยังไฟล์รูปภาพ (เช่น โลโก้หรือกราฟิกลายเซ็น) อย่าลืมเปลี่ยน"demo.png" ด้วยภาพจริงที่คุณต้องการใช้

ขั้นตอนที่ 6: ลงนามใน PDF

เมื่อทุกอย่างพร้อมแล้ว ก็ถึงเวลาลงนามในเอกสาร PDF!

pdfSign.Sign(1, "Reason", "Contact", "Location", true, new System.Drawing.Rectangle(100, 100, 200, 200), externalSignature);
pdfSign.Save(dataDir + "externalSignature2.pdf");

ในขั้นตอนนี้เราเรียกSign วิธีการของเราpdfSign วัตถุ นี่คือความหมายของแต่ละพารามิเตอร์:

  • 1:หมายเลขหน้าที่ลายเซ็นจะปรากฏ
  • "Reason": เหตุผลในการลงนามเอกสาร
  • "Contact": ข้อมูลสำหรับติดต่อผู้ลงนาม
  • "Location": ที่อยู่ของผู้ลงนาม
  • true: ระบุว่าจะสร้างลายเซ็นที่มองเห็นได้หรือไม่
  • new System.Drawing.Rectangle(100, 100, 200, 200):ตำแหน่งและขนาดของลายเซ็นบน PDF
  • externalSignature:วัตถุลายเซ็นที่เราสร้างไว้ก่อนหน้านี้

สุดท้ายเราบันทึกเอกสารที่ลงนามแล้วเป็นexternalSignature2.pdf.

ขั้นตอนที่ 7: ตรวจสอบลายเซ็น

หลังจากลงนามในเอกสารแล้ว สิ่งสำคัญคือต้องตรวจสอบว่าลายเซ็นนั้นถูกต้องหรือไม่ โดยทำตามขั้นตอนดังต่อไปนี้:

เริ่มกระบวนการตรวจสอบ

using (Facades.PdfFileSignature pdfSign = new Facades.PdfFileSignature(new Document(dataDir + "externalSignature2.pdf")))
{
    IList<string> sigNames = pdfSign.GetSignNames();

เราสร้างอินสแตนซ์ใหม่ของPdfFileSignature สำหรับเอกสารที่ลงนามแล้ว จากนั้นเราจะเรียกค้นชื่อลายเซ็นทั้งหมดที่มีอยู่ในเอกสาร

ตรวจสอบความถูกต้องของลายเซ็น

for (int index = 0; index <= sigNames.Count - 1; index++)
{
    if (!pdfSign.VerifySigned(sigNames[index]) || !pdfSign.VerifySignature(sigNames[index]))
    {
        throw new ApplicationException("Not verified");
    }
}

เราตรวจสอบชื่อลายเซ็นแต่ละชื่อและยืนยันความถูกต้อง หากลายเซ็นใดไม่ผ่านการตรวจสอบ จะมีการแสดงข้อยกเว้นเพื่อระบุว่าลายเซ็นนั้นไม่ถูกต้อง

บทสรุป

และแล้วคุณก็ทำได้! คุณได้ลงนามในเอกสาร PDF สำเร็จแล้วโดยใช้สมาร์ทการ์ดด้วย Aspose.PDF สำหรับ .NET กระบวนการนี้ไม่เพียงแต่จะรักษาความปลอดภัยให้กับเอกสารของคุณเท่านั้น แต่ยังเพิ่มชั้นของความถูกต้องซึ่งมีความสำคัญในโลกดิจิทัลในปัจจุบันอีกด้วย ไม่ว่าคุณจะกำลังจัดการกับสัญญา เอกสารทางกฎหมาย หรือข้อมูลที่ละเอียดอ่อนใดๆ การรู้วิธีการนำลายเซ็นดิจิทัลไปใช้ถือเป็นทักษะที่มีค่า

คำถามที่พบบ่อย

Aspose.PDF สำหรับ .NET คืออะไร?

Aspose.PDF สำหรับ .NET เป็นไลบรารีอันทรงพลังที่ช่วยให้นักพัฒนาสามารถสร้าง จัดการ และแปลงเอกสาร PDF ภายในแอปพลิเคชัน .NET ได้

ฉันต้องมีสมาร์ทการ์ดในการลงนามใน PDF หรือไม่

แม้ว่าสมาร์ทการ์ดจะไม่ใช่สิ่งบังคับใช้ แต่ขอแนะนำอย่างยิ่งสำหรับลายเซ็นดิจิทัลที่ปลอดภัย เพราะมันจะเพิ่มระดับความปลอดภัยอีกชั้นหนึ่ง

ฉันสามารถใช้ไฟล์ PDF ใด ๆ ในการลงนามได้หรือไม่

ใช่ คุณสามารถใช้ไฟล์ PDF ใดก็ได้ แต่ต้องแน่ใจว่าไม่มีการป้องกันด้วยรหัสผ่าน หากมี คุณจะต้องปลดล็อกไฟล์ก่อน

จะเกิดอะไรขึ้นหากฉันไม่มีใบรับรองดิจิทัล?

คุณสามารถรับใบรับรองดิจิทัลจากผู้มีอำนาจออกใบรับรอง (CA) ที่เชื่อถือได้ หรือใช้ใบรับรองที่ลงนามเองเพื่อวัตถุประสงค์ในการทดสอบ

มี Aspose.PDF เวอร์ชันทดลองใช้งานหรือไม่

ใช่ คุณสามารถดาวน์โหลดเวอร์ชันทดลองใช้งานฟรีได้จากเว็บไซต์อาโพส.