اضافه کردن امضای دیجیتال به PDF C#

امضای دیجیتال برای ایمن سازی اسناد PDF قبل از به اشتراک گذاشته شدن با اشخاص ثالث استفاده می شود. امضای دیجیتالی یک سند PDF، تشخیص دستکاری را با تأیید سند با استفاده از امضای دیجیتال ممکن می‌سازد. به منظور ایمن سازی اسناد PDF به صورت برنامه ای با استفاده از امضای دیجیتال، این مقاله به شما نشان می دهد که چگونه امضای دیجیتال را در فایل های PDF در سی شارپ اضافه کنید. همچنین یاد خواهید گرفت که چگونه امضای دیجیتال را در فایل های PDF در سی شارپ تایید کنید.

C#.NET API برای افزودن امضاهای دیجیتال در PDF

به منظور افزودن و تأیید امضای دیجیتال در اسناد PDF، از Aspose.PDF for .NET API استفاده خواهیم کرد که یک API دستکاری PDF قدرتمند برای ایجاد، ویرایش، تبدیل و امضای دیجیتالی اسناد PDF است. می‌توانید Aspose.PDF را برای دات‌نت دانلود یا با استفاده از یکی از روش‌های زیر در ویژوال استودیو نصب کنید:

NuGet Package Manager

ثبت دیجیتالی PDF در سی شارپ

کنسول Package Manager

PM> Install-Package Aspose.PDF

اضافه کردن امضای دیجیتال به PDF در سی شارپ

مراحل زیر برای امضای یک سند PDF با استفاده از Aspose.PDF برای دات نت آمده است.

  • یک شی از کلاس Document ایجاد کنید و آن را با مسیر سند PDF مقداردهی کنید.
  • یک شی از کلاس PdfFileSignature ایجاد کنید و آن را با شی کلاس Document مقداردهی اولیه کنید.
  • یک شی از کلاس PKCS7 ایجاد کنید و آن را با یک مسیر گواهی و رمز عبور مقداردهی اولیه کنید.
  • شیء کلاس DocMDPSignature را برای نوع امضای MDP ایجاد و مقداردهی اولیه کنید.
  • یک مستطیل برای قرار دادن امضا ایجاد کنید.
  • با استفاده از روش PdfFileSignature.Certify() سند PDF را به صورت دیجیتال امضا کنید.
  • سند را با استفاده از روش PdfFileSignature.Save() ذخیره کنید.

نمونه کد زیر نحوه افزودن امضای دیجیتال به سند PDF در سی شارپ را نشان می دهد.

// سند 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);
		// تنظیم ظاهر امضا
		signature.SignatureAppearance = @"aspose-logo.png";
		// هر یک از سه نوع امضا را ایجاد کنید
		signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
		// فایل PDF امضا شده دیجیتال را ذخیره کنید
		signature.Save("Digitally Signed PDF.pdf");
	}
}

سی شارپ اضافه کردن امضای دیجیتال به PDF با استفاده از Timestamp Server

همچنین می‌توانید با ارائه جزئیات آن با استفاده از کلاس TimestampSettings یک امضای دیجیتال را با سرور TimeStamp به سند PDF اضافه کنید. نمونه کد زیر نحوه امضای دیجیتالی یک سند PDF را با سرور TimeStamp در سی شارپ نشان می دهد.

// سند 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);
		// هر یک از سه نوع امضا را ایجاد کنید
		signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
		// ذخیره فایل PDF خروجی
		signature.Save("Output.pdf");
	}
}

تأیید PDF امضا شده دیجیتال در سی شارپ

مراحل زیر برای تأیید امضای دیجیتال در یک سند PDF است:

  • یک شی از کلاس Document ایجاد کنید و آن را با مسیر سند PDF مقداردهی اولیه کنید.
  • یک شی از کلاس PdfFileSignature ایجاد کنید و آن را با شی کلاس Document مقداردهی اولیه کنید.
  • به تمام امضاهای سند PDF دسترسی داشته باشید.
  • اعتبار امضا را با استفاده از روش PdfFileSignature.VerifySigned() بررسی کنید.

نمونه کد زیر نحوه تأیید امضای دیجیتال در PDF را با استفاده از C# نشان می دهد.

// بارگذاری سند 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
					{
						// کاری بکنید
					}
				}
			}
		}
	}
}

Aspose.PDF را برای دات نت به صورت رایگان امتحان کنید

می توانید برای امتحان و استفاده از Aspose.PDF برای دات نت یک مجوز موقت رایگان دریافت کنید.

نتیجه

در این مقاله با نحوه افزودن امضای دیجیتال به فایل های PDF در C#.NET آشنا شدید. علاوه بر این، نحوه تأیید فایل های PDF امضا شده دیجیتالی را به صورت برنامه نویسی در سی شارپ مشاهده کرده اید. شما به سادگی می توانید Aspose.PDF را برای دات نت در برنامه های خود نصب کنید و فایل های PDF خود را به صورت دیجیتالی یکپارچه امضا کنید.

مقالات مرتبط