Bevezetés

A mai digitális környezetben a dokumentumok hitelességének és integritásának biztosítása kritikus fontosságú a vállalkozások és szervezetek számára. A digitális aláírások robusztus mechanizmust biztosítanak a dokumentumok hitelességének ellenőrzésére és a jogosulatlan módosítások észlelésére. A GroupDocs.Signature for .NET átfogó megoldást kínál a digitális aláírások kezelésére különféle dokumentumformátumokban, lehetővé téve a fejlesztők számára, hogy zökkenőmentesen integrálják az aláírási funkciókat .NET alkalmazásaikba.

Ez az oktatóanyag részletes magyarázatokkal és gyakorlati kódpéldákkal végigvezeti Önt a GroupDocs.Signature for .NET használatával történő digitális aláírások keresésének folyamatán.

Előfeltételek

Mielőtt belemerülnénk a megvalósítás részleteibe, győződjünk meg arról, hogy a következő előfeltételek teljesülnek:

  1. GroupDocs.Signature for .NET: Töltse le és telepítse a könyvtárat innen: itt.

  2. Fejlesztői környezet: Hozzon létre egy .NET fejlesztői környezetet a Visual Studio vagy a kívánt IDE segítségével.

  3. Mintadokumentumok: Készítsen digitális aláírásokat tartalmazó mintadokumentumokat tesztelési célokra.

  4. Alapismeretek: Jártasság a C# programozási nyelvben és a .NET keretrendszer alapjaiban.

Névterek importálása

Kezdje a szükséges névterek importálásával, hogy hozzáférhessen a GroupDocs.Signature for .NET által biztosított funkciókhoz:

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

Most bontsuk le a digitális aláírások keresésének folyamatát világos és könnyen kezelhető lépésekre:

1. lépés: Aláírásobjektum inicializálása

Kezdje egy példány létrehozásával a Signature osztály, átadva a dokumentumod elérési útját:

string filePath = "sample_multiple_signatures.docx";
using (Signature signature = new Signature(filePath))
{
    // A digitális aláírások keresésére szolgáló kód ide lesz hozzáadva.
}

2. lépés: Digitális aláírások keresése

Ezután használja a Search módszer a SignatureType.Digital paraméter a digitális aláírások kereséséhez a dokumentumban:

// Digitális aláírások keresése a dokumentumban
List<DigitalSignature> signatures = signature.Search<DigitalSignature>(SignatureType.Digital);

3. lépés: Az eredmények feldolgozása és megjelenítése

Végül dolgozza fel a keresési eredményeket, és jelenítse meg a talált digitális aláírásokkal kapcsolatos releváns információkat:

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

Teljes példa

Íme egy teljes, működő példa, amely bemutatja, hogyan kereshetünk digitális aláírásokat egy dokumentumban:

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)
        {
            // Dokumentum elérési útja
            string filePath = "sample_multiple_signatures.docx";
            
            // Aláíráspéldány inicializálása
            using (Signature signature = new Signature(filePath))
            {
                // Digitális aláírások keresése a dokumentumban
                List<DigitalSignature> signatures = signature.Search<DigitalSignature>(SignatureType.Digital);
                
                // Keresési eredmények megjelenítése
                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.");
                }
            }
        }
    }
}

Speciális keresési beállítások

Célzottabb keresésekhez használhatod a DigitalSearchOptions a keresési feltételek testreszabásához:

// Digitális keresési lehetőségek létrehozása
DigitalSearchOptions options = new DigitalSearchOptions()
{
    // Csak meghatározott oldalakon keressen (pl. 1. és 2. oldal)
    PageNumber = 1,
    PagesSetup = new PagesSetup() { Pages = new List<int> { 1, 2 } },
    
    // Szűrés digitális aláírásokban található megjegyzések szerint
    Comments = "Approved",
    
    // Keresés dátum- és időtartományának beállítása
    SignDateTimeFrom = new DateTime(2022, 1, 1),
    SignDateTimeTo = DateTime.Now
};

// Keresés adott beállításokkal
List<DigitalSignature> signatures = signature.Search<DigitalSignature>(options);

Tanúsítványinformációk kezelése

A digitális aláírások értékes tanúsítványinformációkat tartalmaznak, amelyekhez hozzáférhet és amelyeket érvényesíthet:

foreach (var digitalSignature in signatures)
{
    if (digitalSignature.Certificate != null)
    {
        // Hozzáférési tanúsítvány tulajdonságai
        Console.WriteLine($"Certificate Valid From: {digitalSignature.Certificate.NotBefore}");
        Console.WriteLine($"Certificate Valid To: {digitalSignature.Certificate.NotAfter}");
        
        // Ellenőrizze, hogy a tanúsítvány érvényes dátumtartományban van-e
        bool isDateValid = DateTime.Now >= digitalSignature.Certificate.NotBefore && 
                          DateTime.Now <= digitalSignature.Certificate.NotAfter;
        
        Console.WriteLine($"Certificate Date Validity: {isDateValid}");
        
        // Hozzáférési tanúsítvány kibocsátójának adatai
        Console.WriteLine($"Certificate Issuer: {digitalSignature.Certificate.IssuerName}");
    }
}

Következtetés

A GroupDocs.Signature for .NET hatékony és rugalmas megoldást kínál a dokumentumokban található digitális aláírások keresésére és érvényesítésére. Ebben az oktatóanyagban lépésről lépésre bemutattuk a digitális aláírás-keresési funkció .NET-alkalmazásokban történő megvalósításának folyamatát, felvértezve Önt a dokumentumok biztonságának és integritás-ellenőrzésének fokozásához szükséges ismeretekkel.

A GroupDocs.Signature kihasználásával robusztus dokumentumkezelő rendszereket építhet, amelyek biztosítják digitális dokumentumai hitelességét és integritását, elősegítve a bizalmat és a megfelelőséget üzleti folyamataiban.

GYIK

GroupDocs.Signature képes ellenőrizni a digitális aláírások érvényességét?

Igen, a GroupDocs.Signature automatikusan ellenőrzi a digitális aláírásokat a keresési folyamat során, és érvényesítési állapotot biztosít a IsValid a tulajdona DigitalSignature osztály.

Mely dokumentumformátumok támogatják a digitális aláírás keresését?

A GroupDocs.Signature különféle formátumokban támogatja a digitális aláírások keresését, beleértve a PDF-et, a Microsoft Office dokumentumokat (Word, Excel, PowerPoint), az OpenOffice formátumokat és egyebeket.

Kereshetek digitális aláírásokat jelszóval védett dokumentumokban?

Igen, a jelszóval védett dokumentumokban is kereshet digitális aláírásokat, ha megadja a jelszót az inicializáláskor. Signature objektum:

LoadOptions loadOptions = new LoadOptions() { Password = "your_password" };
using (Signature signature = new Signature(filePath, loadOptions))
{
    // Digitális aláírások keresése
}

Hogyan tudom ellenőrizni, hogy egy digitális aláírást egy adott személy készített-e?

A tanúsítvány tulajdonosának nevét és egyéb tulajdonságait megvizsgálva ellenőrizheti az aláíró személyazonosságát:

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

Ki tudom nyerni a nyilvános kulcsot egy digitális aláírási tanúsítványból?

Igen, a nyilvános kulcs adatait a tanúsítvány tulajdonságain keresztül érheti el:

if (signature.Certificate != null)
{
    // Hozzáférés a nyilvános kulcs információihoz
    Console.WriteLine($"Public Key: {signature.Certificate.GetPublicKeyString()}");
}

Lásd még