PDF C#'a dijital imza ekleme

Dijital İmzalar, üçüncü taraflarla paylaşılmadan önce PDF belgelerini güvenceye almak için kullanılır. Bir PDF belgesini dijital olarak imzalamak, dijital imzayı kullanarak belgeyi doğrulayarak kurcalamayı algılamayı mümkün kılar. Dijital imzaları kullanarak PDF belgelerini programlı olarak güvenceye almak için, bu makale size C# dilinde bir PDF dosyasına nasıl dijital imza ekleyeceğinizi gösterecektir. Ayrıca C# dilinde PDF dosyalarındaki dijital imzaları nasıl doğrulayacağınızı da öğreneceksiniz.

PDF’ye Dijital İmzalar Eklemek için C# .NET API

PDF belgelerine dijital imza eklemek ve doğrulamak için, PDF belgelerini oluşturmak, düzenlemek, dönüştürmek ve dijital olarak imzalamak için güçlü bir PDF işleme API’si olan Aspose.PDF for .NET API’sini kullanacağız. Aspose.PDF for .NET’i indirebilir veya Visual Studio’da aşağıdaki yollardan birini kullanarak yükleyebilirsiniz:

NuGet Paket Yöneticisi

PDF'yi C# ile Dijital Olarak İmzalayın

Paket Yöneticisi Konsolu

PM> Install-Package Aspose.PDF

C# ile PDF’ye Dijital İmza Ekleme

Aspose.PDF for .NET kullanarak bir PDF belgesini imzalamak için izlenecek adımlar aşağıdadır.

  • Document sınıfından bir nesne oluşturun ve onu PDF belgesinin yolu ile başlatın.
  • PdfFileSignature sınıfından bir nesne oluşturun ve onu Document sınıfının nesnesiyle başlatın.
  • PKCS7 sınıfından bir nesne oluşturun ve bunu bir sertifika yolu ve parola ile başlatın.
  • MDP imza türü için DocMDPSignature sınıfının nesnesini oluşturun ve başlatın.
  • İmza yerleşimi için bir Dikdörtgen oluşturun.
  • PdfFileSignature.Certify() yöntemini kullanarak PDF belgesini dijital olarak imzalayın.
  • Belgeyi PdfFileSignature.Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C# dilinde bir PDF belgesine nasıl dijital imza ekleneceğini gösterir.

// PDF belgesini yükle
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);
		// İmza görünümünü ayarla
		signature.SignatureAppearance = @"aspose-logo.png";
		// Üç imza türünden herhangi birini oluşturun
		signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
		// Dijital olarak imzalanmış PDF dosyasını kaydedin
		signature.Save("Digitally Signed PDF.pdf");
	}
}

C# Zaman Damgası Sunucusu kullanarak PDF’ye Dijital İmza Ekleme

Ayrıca, TimestampSettings sınıfını kullanarak ayrıntılarını sağlayarak TimeStamp sunucusuyla bir PDF belgesine dijital imza ekleyebilirsiniz. Aşağıdaki kod örneği, bir PDF belgesinin C# dilinde bir TimeStamp sunucusuyla dijital olarak nasıl imzalanacağını gösterir.

// PDF belgesini yükle
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);
		// Üç imza türünden herhangi birini oluşturun
		signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
		// Çıktı PDF dosyasını kaydet
		signature.Save("Output.pdf");
	}
}

Dijital Olarak İmzalanmış PDF’yi C# ile Doğrulayın

Aşağıda, bir PDF belgesinde dijital imzayı doğrulama adımları yer almaktadır:

  • Document sınıfından bir nesne oluşturun ve onu PDF belgesinin yolu ile başlatın.
  • PdfFileSignature sınıfından bir nesne oluşturun ve onu Document sınıfının nesnesiyle başlatın.
  • PDF belgesinin tüm imzalarına erişin.
  • PdfFileSignature.VerifySigned() yöntemini kullanarak imzanın geçerliliğini doğrulayın.

Aşağıdaki kod örneği, C# kullanarak PDF’de dijital imzanın nasıl doğrulanacağını gösterir.

// PDF belgesini yükle
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
					{
						// Bir şey yap
					}
				}
			}
		}
	}
}

Aspose.PDF for .NET’i Ücretsiz Deneyin

Aspose.PDF for .NET’i denemek ve kullanmak için ücretsiz geçici lisans alabilirsiniz.

Çözüm

Bu makalede, C#.NET’te PDF dosyalarına nasıl dijital imza ekleyeceğinizi öğrendiniz. Ayrıca, dijital olarak imzalanmış PDF dosyalarını programlı olarak C# ile nasıl doğrulayacağınızı gördünüz. Aspose.PDF for .NET’i uygulamalarınıza kolayca kurabilir ve PDF dosyalarınızı sorunsuz bir şekilde dijital olarak imzalayabilirsiniz.

İlgili Makaleler