Digitální podpisy
Digitální podpisy
Aspose.Words FOSS pro .NET může prohlížet a ověřovat digitální podpisy, které jsou již připojeny k .docx dokumentu prostřednictvím Aspose.Words.DigitalSignatures jmenného prostoru. Tato edice pokrývá podpis verification — čtení metadat podpisu, kontrolu platnosti a zkoumání certifikátu podepisujícího. Neobsahuje možnost vytvářet nové podpisy v dokumentu.
Čtení podpisů z dokumentu
Každý Document vystavuje vlastnost DigitalSignatures, která vrací DigitalSignatureCollection — jen pro čtení, enumerovatelnou kolekci objektů DigitalSignature již přítomných v načteném souboru. DigitalSignatureUtil.LoadSignatures(fileName) (a přetížení LoadSignatures(stream)) čte podpisy přímo ze souboru nebo proudu, aniž by načítalo celý dokument do objektu Document, což je užitečné, když potřebujete jen zkontrolovat stav podpisu. Vlastnost IsValid kolekce udává, zda je každý obsažený podpis platný, a Count uvádí, kolik podpisů bylo nalezeno.
Prohlížení jednotlivého podpisu
Každý DigitalSignature vystavuje IsValid (zda je podpis kryptograficky platný), SignatureType (hodnota DigitalSignatureType — CryptoApi, XmlDsig nebo Unknown), SignTime, Comments, SubjectName, IssuerName a surové bajty SignatureValue. Vlastnost CertificateHolder vrací objekt CertificateHolder zapouzdřující podpisový certifikát; její vlastnost Certificate odhaluje podkladový X509Certificate2, takže můžete prohlížet standardní pole certifikátu (vydavatel, subjekt, období platnosti) pomocí vlastních API pro certifikáty .NET.
Co není v tomto vydání podporováno
Rozhraní API stále deklaruje členy související s podepisováním — DigitalSignatureUtil.Sign(), SignOptions, a XmlDsigLevel — pro strukturovou kompatibilitu s komerčním Aspose.Words pro .NET objektním modelem, avšak vytváření nového digitálního podpisu v dokumentu není v této FOSS edici funkční. Použijte tuto edici k verify podpisům, které již v dokumentu existují; workflow podepisování vyžaduje Aspose.Words pro .NET.
Tipy a osvědčené postupy
- Upřednostněte
DigitalSignatureUtil.LoadSignatures()před otevřením celéhoDocument, pokud potřebujete jen zkontrolovat, zda je soubor podepsán — tím se vyhnete nákladům na parsování celého těla dokumentu. - Nejprve zkontrolujte
DigitalSignatureCollection.IsValidpro rychlé pro/neschválení, než budete iterovat jednotlivé hodnotyDigitalSignature.IsValid. SignatureTypevám říká, který podepisovací mechanismus vytvořil podpis (CryptoApivs.XmlDsig); to ovlivňuje, které pole certifikátu jsou významné.- Považujte
IsValid == falseza podmínku tvrdého selhání v jakémkoli automatizovaném pipeline pro příjem dokumentů — neprezentujte metadata podpisu z neplatného podpisu jako důvěryhodná.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
DigitalSignatures.Count je 0 na podepsaném .docx | Soubor byl znovu uložen nástrojem, který odstranil část s podpisem | Ověřte vůči původnímu podepsanému souboru, ne vůči znovu uložené kopii |
Podpis hlásí IsValid = false | Obsah dokumentu se po podepsání změnil, nebo je certifikát nedůvěryhodný/platnost vypršela | Považovat za neplatný; nepokoušejte se “repair” podpis |
| Pokus o podepsání dokumentu nemá žádný efekt | Podepisování není v této FOSS edici implementováno | Použijte Aspose.Words pro .NET (komerční) pro podepisovací workflow |
CertificateHolder.Certificate vyhodí výjimku při inspekci | Základní data certifikátu jsou poškozena nebo je část podpisu poškozená | Potvrďte, že zdrojový soubor je pravý, nepozměněný podepsaný dokument |
FAQ
Může Aspose.Words FOSS pro .NET podepsat dokument?
Ne. Toto vydání může ověřovat existující digitální podpisy, ale nemůže vytvářet nové. Metoda DigitalSignatureUtil.Sign() a třída SignOptions existují v rozhraní API pro strukturální kompatibilitu, ale podepisování zde není funkční.
Jak mohu zkontrolovat, zda je dokument podepsaný, aniž bych jej načítal celý?
Zavolejte DigitalSignatureUtil.LoadSignatures(fileName), který vrací DigitalSignatureCollection přímo ze souboru.
Co znamená DigitalSignatureCollection.IsValid?
Je true pouze tehdy, když je každý podpis v kolekci individuálně platný — rychlý způsob, jak zkontrolovat celkovou integritu podpisu dokumentu před kontrolou každého DigitalSignature.
Kde získám podrobnosti o certifikátu pro podpis?
Prostřednictvím DigitalSignature.CertificateHolder.Certificate, který vrací standardní .NET X509Certificate2.
API Reference Shrnutí
| Třída / Metoda | Popis: |
|---|---|
Document.DigitalSignatures | Podpisy již připojené k načtenému dokumentu |
DigitalSignatureUtil.LoadSignatures() | Číst podpisy ze souboru nebo proudu bez načtení celého dokumentu |
DigitalSignatureCollection | Kolekce jen pro čtení objektů DigitalSignature; IsValid, Count |
DigitalSignature | Jeden podpis: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder |
DigitalSignatureType | Výčet: CryptoApi, XmlDsig, Unknown |
CertificateHolder | Obaluje podepisování X509Certificate2 |