giriiş

Günümüzün dijital dünyasında, belge gerçekliğini ve bütünlüğünü sağlamak işletmeler ve kuruluşlar için kritik öneme sahiptir. Dijital imzalar, belge gerçekliğini doğrulamak ve yetkisiz değişiklikleri tespit etmek için güçlü bir mekanizma sağlar. GroupDocs.Signature for .NET, çeşitli belge biçimlerinde dijital imzalarla çalışmak için kapsamlı bir çözüm sunarak, geliştiricilerin imza işlevlerini .NET uygulamalarına sorunsuz bir şekilde entegre etmelerini sağlar.

Bu eğitim, .NET için GroupDocs.Signature kullanarak belgeler içinde dijital imzaları arama sürecinde size rehberlik edecek, ayrıntılı açıklamalar ve pratik kod örnekleri sağlayacaktır.

Ön koşullar

Uygulama detaylarına dalmadan önce aşağıdaki ön koşullara sahip olduğunuzdan emin olun:

  1. GroupDocs.Signature for .NET: Kitaplığı şu adresten indirin ve yükleyin: Burada.

  2. Geliştirme Ortamı: Visual Studio veya tercih ettiğiniz IDE ile bir .NET geliştirme ortamı kurun.

  3. Örnek Belgeler: Test amaçlı dijital imzaları içeren örnek belgeler hazırlayın.

  4. Temel Bilgi: C# programlama dili ve .NET framework temellerine aşinalık.

Ad Alanlarını İçe Aktar

GroupDocs.Signature for .NET tarafından sağlanan işlevselliğe erişmek için gerekli ad alanlarını içe aktararak başlayın:

using System;
using System.Collections.Generic;
using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

Şimdi dijital imza arama sürecini anlaşılır ve yönetilebilir adımlara bölelim:

Adım 1: İmza Nesnesini Başlatın

Bir örnek oluşturarak başlayın Signature sınıf, belgenize giden yolu aktarıyor:

string filePath = "sample_multiple_signatures.docx";
using (Signature signature = new Signature(filePath))
{
    // Dijital imzaları aramak için kod buraya eklenecek
}

Adım 2: Dijital İmzaları Arayın

Sonra şunu kullanın: Search yöntemi ile SignatureType.Digital Belgedeki dijital imzaları aramak için parametre:

// Belgede dijital imzaları arayın
List<DigitalSignature> signatures = signature.Search<DigitalSignature>(SignatureType.Digital);

Adım 3: Sonuçları İşleyin ve Görüntüleyin

Son olarak arama sonuçlarını işleyin ve bulunan dijital imzalarla ilgili ilgili bilgileri görüntüleyin:

Console.WriteLine($"\nSource document ['{filePath}'] contains the following digital signatures:");
foreach (var digitalSignature in signatures)
{
    Console.WriteLine($"Digital signature found from {digitalSignature.SignTime} with validation status: {digitalSignature.IsValid}");
    Console.WriteLine($"Certificate: Subject: {digitalSignature.Certificate?.SubjectName}");
    Console.WriteLine($"Certificate: Issuer: {digitalSignature.Certificate?.IssuerName}");
    Console.WriteLine($"Certificate: Serial Number: {digitalSignature.Certificate?.SerialNumber}");
    Console.WriteLine();
}

Tam Örnek

İşte bir belgede dijital imzaların nasıl aranacağını gösteren eksiksiz ve çalışan bir örnek:

using System;
using System.Collections.Generic;
using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

namespace SearchDigitalSignatures
{
    class Program
    {
        static void Main(string[] args)
        {
            // Belge yolu
            string filePath = "sample_multiple_signatures.docx";
            
            // İmza örneğini başlat
            using (Signature signature = new Signature(filePath))
            {
                // Belgede dijital imzaları arayın
                List<DigitalSignature> signatures = signature.Search<DigitalSignature>(SignatureType.Digital);
                
                // Arama sonuçlarını görüntüle
                Console.WriteLine($"\nSource document ['{filePath}'] contains the following digital signatures:");
                
                if (signatures.Count > 0)
                {
                    foreach (var digitalSignature in signatures)
                    {
                        Console.WriteLine($"Digital signature found from {digitalSignature.SignTime} with validation status: {digitalSignature.IsValid}");
                        Console.WriteLine($"Certificate: Subject: {digitalSignature.Certificate?.SubjectName}");
                        Console.WriteLine($"Certificate: Issuer: {digitalSignature.Certificate?.IssuerName}");
                        Console.WriteLine($"Certificate: Serial Number: {digitalSignature.Certificate?.SerialNumber}");
                        Console.WriteLine();
                    }
                }
                else
                {
                    Console.WriteLine("No digital signatures found in the document.");
                }
            }
        }
    }
}

Gelişmiş Arama Seçenekleri

Daha hedefli aramalar için şunları kullanabilirsiniz: DigitalSearchOptions arama kriterlerini özelleştirmek için:

// Dijital arama seçenekleri oluşturun
DigitalSearchOptions options = new DigitalSearchOptions()
{
    // Yalnızca belirli sayfalarda arama yapın (örneğin, 1. ve 2. sayfalar)
    PageNumber = 1,
    PagesSetup = new PagesSetup() { Pages = new List<int> { 1, 2 } },
    
    // Dijital imzalarda yorumlara göre filtreleme
    Comments = "Approved",
    
    // Arama için tarih ve saat aralığını ayarlayın
    SignDateTimeFrom = new DateTime(2022, 1, 1),
    SignDateTimeTo = DateTime.Now
};

// Belirli seçeneklerle arama yapın
List<DigitalSignature> signatures = signature.Search<DigitalSignature>(options);

Sertifika Bilgileri ile Çalışma

Dijital imzalar, erişebileceğiniz ve doğrulayabileceğiniz değerli sertifika bilgileri içerir:

foreach (var digitalSignature in signatures)
{
    if (digitalSignature.Certificate != null)
    {
        // Erişim sertifikası özellikleri
        Console.WriteLine($"Certificate Valid From: {digitalSignature.Certificate.NotBefore}");
        Console.WriteLine($"Certificate Valid To: {digitalSignature.Certificate.NotAfter}");
        
        // Sertifikanın geçerli tarih aralığında olup olmadığını kontrol edin
        bool isDateValid = DateTime.Now >= digitalSignature.Certificate.NotBefore && 
                          DateTime.Now <= digitalSignature.Certificate.NotAfter;
        
        Console.WriteLine($"Certificate Date Validity: {isDateValid}");
        
        // Erişim sertifikası yayıncısının ayrıntıları
        Console.WriteLine($"Certificate Issuer: {digitalSignature.Certificate.IssuerName}");
    }
}

Çözüm

GroupDocs.Signature for .NET, belgelerdeki dijital imzaları aramak ve doğrulamak için güçlü ve esnek bir çözüm sunar. Bu eğitimde, .NET uygulamalarında dijital imza arama işlevini uygulama sürecini adım adım inceleyerek, belge güvenliğini ve bütünlük doğrulamasını geliştirmeniz için gereken bilgi birikimini edinmenizi sağladık.

GroupDocs.Signature’ı kullanarak, dijital belgelerinizin gerçekliğini ve bütünlüğünü garanti eden, iş süreçlerinizde güveni ve uyumluluğu artıran güçlü belge yönetim sistemleri oluşturabilirsiniz.

SSS

GroupDocs.Signature dijital imzaların geçerliliğini doğrulayabilir mi?

Evet, GroupDocs.Signature arama işlemi sırasında dijital imzaları otomatik olarak doğrular ve doğrulama durumunu sağlar. IsValid mülkiyeti DigitalSignature sınıf.

Hangi belge biçimleri dijital imza aramasını destekler?

GroupDocs.Signature, PDF, Microsoft Office belgeleri (Word, Excel, PowerPoint), OpenOffice biçimleri ve daha fazlası dahil olmak üzere çeşitli biçimlerde dijital imza aramayı destekler.

Şifreyle korunan belgelerde dijital imzaları arayabilir miyim?

Evet, başlatırken parolayı sağlayarak parola korumalı belgelerde dijital imzaları arayabilirsiniz. Signature nesne:

LoadOptions loadOptions = new LoadOptions() { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
    // Dijital imzaları arayın
}

Dijital imzanın belirli bir kişi tarafından oluşturulduğunu nasıl doğrulayabilirim?

İmzalayanın kimliğini doğrulamak için sertifikanın konu adını ve diğer özelliklerini inceleyebilirsiniz:

foreach (var signature in signatures)
{
    if (signature.Certificate?.SubjectName?.Contains("John Doe") == true)
    {
        Console.WriteLine("Found signature by John Doe");
    }
}

Dijital imza sertifikasından genel anahtarı çıkarabilir miyim?

Evet, sertifika özellikleri aracılığıyla genel anahtar bilgilerine erişebilirsiniz:

if (signature.Certificate != null)
{
    // Genel anahtar bilgilerine erişim
    Console.WriteLine($"Public Key: {signature.Certificate.GetPublicKeyString()}");
}

Ayrıca bakınız