ลงนามด้วยสมาร์ทการ์ดโดยใช้ลายเซ็นไฟล์ PDF
การแนะนำ
ในยุคดิจิทัล การรักษาความปลอดภัยเอกสารมีความสำคัญมากกว่าที่เคย ไม่ว่าจะเป็นสัญญา ข้อตกลง หรือข้อมูลสำคัญใดๆ ก็ตาม การรับรองว่าเอกสารเป็นของแท้และไม่ถูกดัดแปลงถือเป็นสิ่งสำคัญที่สุด ป้อนลายเซ็นดิจิทัล! วันนี้เราจะเจาะลึกวิธีการลงนามไฟล์ PDF โดยใช้สมาร์ทการ์ดด้วย Aspose.PDF สำหรับ .NET ไลบรารีอันทรงพลังนี้ช่วยให้นักพัฒนาสามารถจัดการและสร้างเอกสาร PDF ได้อย่างมีประสิทธิภาพ รวมถึงการเพิ่มลายเซ็นดิจิทัลที่ปลอดภัย ดังนั้น หยิบสมาร์ทการ์ดของคุณแล้วเริ่มกันเลย!
ข้อกำหนดเบื้องต้น
ก่อนที่เราจะลงรายละเอียดในการลงนามในไฟล์ PDF เรามาตรวจสอบกันก่อนว่าคุณได้เตรียมทุกอย่างที่จำเป็นแล้ว นี่คือรายการตรวจสอบที่จะช่วยให้คุณเตรียมตัวได้:
- Aspose.PDF สำหรับ .NET: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งไลบรารี Aspose.PDF แล้ว คุณสามารถดาวน์โหลดได้จากเว็บไซต์.
- Visual Studio: สภาพแวดล้อมการพัฒนาที่คุณสามารถเขียนและรันโค้ด .NET ได้
- สมาร์ทการ์ด: คุณจะต้องมีสมาร์ทการ์ดที่มีใบรับรองดิจิทัลที่ถูกต้องติดตั้งอยู่
- ความเข้าใจพื้นฐานเกี่ยวกับ C#: ความคุ้นเคยกับการเขียนโปรแกรม C# จะเป็นประโยชน์เนื่องจากเราจะเขียนโค้ดสั้นๆ ในภาษานี้
- เอกสาร PDF: ไฟล์ PDF ตัวอย่าง (เช่น
blank.pdf
) เพื่อทดสอบกระบวนการลงนามของเรา
เมื่อมีข้อกำหนดเบื้องต้นเหล่านี้แล้ว คุณก็พร้อมที่จะดำดิ่งสู่โค้ดได้เลย!
แพ็คเกจนำเข้า
ขั้นแรก เรามาทำการนำเข้าแพ็คเกจที่จำเป็นกันก่อน คุณจะต้องเพิ่มการอ้างอิงไปยังไลบรารี Aspose.PDF ในโปรเจ็กต์ของคุณ วิธีดำเนินการมีดังนี้:
- เปิด Visual Studio
- สร้างโครงการใหม่หรือเปิดโครงการที่มีอยู่
- คลิกขวาที่โครงการของคุณใน Solution Explorer และเลือก
Manage NuGet Packages
. - ค้นหา
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)
:ตำแหน่งและขนาดของลายเซ็นบน PDFexternalSignature
:วัตถุลายเซ็นที่เราสร้างไว้ก่อนหน้านี้
สุดท้ายเราบันทึกเอกสารที่ลงนามแล้วเป็น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 เวอร์ชันทดลองใช้งานหรือไม่
ใช่ คุณสามารถดาวน์โหลดเวอร์ชันทดลองใช้งานฟรีได้จากเว็บไซต์อาโพส.