Perkenalan

Dalam lanskap digital saat ini, memastikan keaslian dan integritas dokumen sangat penting bagi bisnis dan organisasi. Tanda tangan digital menyediakan mekanisme yang andal untuk memverifikasi keaslian dokumen dan mendeteksi modifikasi yang tidak sah. GroupDocs.Signature untuk .NET menawarkan solusi komprehensif untuk bekerja dengan tanda tangan digital dalam berbagai format dokumen, yang memungkinkan pengembang untuk mengintegrasikan fungsionalitas tanda tangan dengan lancar ke dalam aplikasi .NET mereka.

Tutorial ini akan memandu Anda melalui proses pencarian tanda tangan digital dalam dokumen menggunakan GroupDocs.Signature untuk .NET, memberikan penjelasan terperinci dan contoh kode praktis.

Prasyarat

Sebelum menyelami detail implementasi, pastikan Anda memiliki prasyarat berikut:

  1. GroupDocs.Signature untuk .NET: Unduh dan instal pustaka dari Di Sini.

  2. Lingkungan Pengembangan: Siapkan lingkungan pengembangan .NET dengan Visual Studio atau IDE pilihan Anda.

  3. Contoh Dokumen: Siapkan contoh dokumen yang berisi tanda tangan digital untuk tujuan pengujian.

  4. Pengetahuan Dasar: Keakraban dengan bahasa pemrograman C# dan dasar-dasar kerangka kerja .NET.

Mengimpor Ruang Nama

Mulailah dengan mengimpor namespace yang diperlukan untuk mengakses fungsionalitas yang disediakan oleh GroupDocs.Signature untuk .NET:

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

Sekarang, mari kita uraikan proses pencarian tanda tangan digital menjadi langkah-langkah yang jelas dan mudah dikelola:

Langkah 1: Inisialisasi Objek Tanda Tangan

Mulailah dengan membuat contoh Signature kelas, meneruskan jalur ke dokumen Anda:

string filePath = "sample_multiple_signatures.docx";
using (Signature signature = new Signature(filePath))
{
    // Kode untuk mencari tanda tangan digital akan ditambahkan di sini
}

Langkah 2: Cari Tanda Tangan Digital

Selanjutnya, gunakan Search metode dengan SignatureType.Digital parameter untuk mencari tanda tangan digital dalam dokumen:

// Mencari tanda tangan digital dalam dokumen
List<DigitalSignature> signatures = signature.Search<DigitalSignature>(SignatureType.Digital);

Langkah 3: Proses dan Tampilkan Hasil

Terakhir, proses hasil pencarian dan tampilkan informasi relevan tentang tanda tangan digital yang ditemukan:

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();
}

Contoh Lengkap

Berikut ini contoh lengkap dan praktis yang menunjukkan cara mencari tanda tangan digital dalam sebuah dokumen:

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)
        {
            // Jalur dokumen
            string filePath = "sample_multiple_signatures.docx";
            
            // Inisialisasi instance Tanda Tangan
            using (Signature signature = new Signature(filePath))
            {
                // Mencari tanda tangan digital dalam dokumen
                List<DigitalSignature> signatures = signature.Search<DigitalSignature>(SignatureType.Digital);
                
                // Menampilkan hasil pencarian
                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.");
                }
            }
        }
    }
}

Opsi Pencarian Lanjutan

Untuk pencarian yang lebih tertarget, Anda dapat menggunakan DigitalSearchOptions untuk menyesuaikan kriteria pencarian:

// Buat opsi pencarian digital
DigitalSearchOptions options = new DigitalSearchOptions()
{
    // Cari hanya pada halaman tertentu (misalnya, halaman 1 dan 2)
    PageNumber = 1,
    PagesSetup = new PagesSetup() { Pages = new List<int> { 1, 2 } },
    
    // Filter berdasarkan komentar dalam tanda tangan digital
    Comments = "Approved",
    
    // Tetapkan rentang tanggal dan waktu untuk pencarian
    SignDateTimeFrom = new DateTime(2022, 1, 1),
    SignDateTimeTo = DateTime.Now
};

// Pencarian dengan opsi tertentu
List<DigitalSignature> signatures = signature.Search<DigitalSignature>(options);

Bekerja dengan Informasi Sertifikat

Tanda tangan digital berisi informasi sertifikat berharga yang dapat Anda akses dan validasi:

foreach (var digitalSignature in signatures)
{
    if (digitalSignature.Certificate != null)
    {
        // Properti sertifikat akses
        Console.WriteLine($"Certificate Valid From: {digitalSignature.Certificate.NotBefore}");
        Console.WriteLine($"Certificate Valid To: {digitalSignature.Certificate.NotAfter}");
        
        // Periksa apakah sertifikat berada dalam rentang tanggal yang valid
        bool isDateValid = DateTime.Now >= digitalSignature.Certificate.NotBefore && 
                          DateTime.Now <= digitalSignature.Certificate.NotAfter;
        
        Console.WriteLine($"Certificate Date Validity: {isDateValid}");
        
        // Detail penerbit sertifikat akses
        Console.WriteLine($"Certificate Issuer: {digitalSignature.Certificate.IssuerName}");
    }
}

Kesimpulan

GroupDocs.Signature untuk .NET menyediakan solusi yang andal dan fleksibel untuk mencari dan memvalidasi tanda tangan digital dalam dokumen. Dalam tutorial ini, kami mengeksplorasi proses langkah demi langkah penerapan fungsi pencarian tanda tangan digital dalam aplikasi .NET, membekali Anda dengan pengetahuan untuk meningkatkan keamanan dan verifikasi integritas dokumen.

Dengan memanfaatkan GroupDocs.Signature, Anda dapat membangun sistem manajemen dokumen tangguh yang memastikan keaslian dan integritas dokumen digital Anda, menumbuhkan kepercayaan dan kepatuhan dalam proses bisnis Anda.

Pertanyaan yang Sering Diajukan

Bisakah GroupDocs.Signature memverifikasi keabsahan tanda tangan digital?

Ya, GroupDocs.Signature secara otomatis memvalidasi tanda tangan digital selama proses pencarian dan memberikan status validasi melalui IsValid milik DigitalSignature kelas.

Format dokumen mana yang mendukung pencarian tanda tangan digital?

GroupDocs.Signature mendukung pencarian tanda tangan digital dalam berbagai format, termasuk PDF, dokumen Microsoft Office (Word, Excel, PowerPoint), format OpenOffice, dan banyak lagi.

Dapatkah saya mencari tanda tangan digital dalam dokumen yang dilindungi kata sandi?

Ya, Anda dapat mencari tanda tangan digital dalam dokumen yang dilindungi kata sandi dengan memberikan kata sandi saat menginisialisasi Signature obyek:

LoadOptions loadOptions = new LoadOptions() { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
    // Cari tanda tangan digital
}

Bagaimana saya dapat memverifikasi apakah tanda tangan digital dibuat oleh orang tertentu?

Anda dapat memeriksa nama subjek sertifikat dan properti lainnya untuk memverifikasi identitas penandatangan:

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

Bisakah saya mengekstrak kunci publik dari sertifikat tanda tangan digital?

Ya, Anda dapat mengakses informasi kunci publik melalui properti sertifikat:

if (signature.Certificate != null)
{
    // Akses informasi kunci publik
    Console.WriteLine($"Public Key: {signature.Certificate.GetPublicKeyString()}");
}

Lihat Juga