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ého Document, 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.IsValid pro rychlé pro/neschválení, než budete iterovat jednotlivé hodnoty DigitalSignature.IsValid.
  • SignatureType vám říká, který podepisovací mechanismus vytvořil podpis (CryptoApi vs. XmlDsig); to ovlivňuje, které pole certifikátu jsou významné.
  • Považujte IsValid == false za 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émPříčinaOprava
DigitalSignatures.Count je 0 na podepsaném .docxSoubor byl znovu uložen nástrojem, který odstranil část s podpisemOvěřte vůči původnímu podepsanému souboru, ne vůči znovu uložené kopii
Podpis hlásí IsValid = falseObsah dokumentu se po podepsání změnil, nebo je certifikát nedůvěryhodný/platnost vypršelaPovažovat za neplatný; nepokoušejte se “repair” podpis
Pokus o podepsání dokumentu nemá žádný efektPodepisování není v této FOSS edici implementovánoPoužijte Aspose.Words pro .NET (komerční) pro podepisovací workflow
CertificateHolder.Certificate vyhodí výjimku při inspekciZá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 / MetodaPopis:
Document.DigitalSignaturesPodpisy již připojené k načtenému dokumentu
DigitalSignatureUtil.LoadSignatures()Číst podpisy ze souboru nebo proudu bez načtení celého dokumentu
DigitalSignatureCollectionKolekce jen pro čtení objektů DigitalSignature; IsValid, Count
DigitalSignatureJeden podpis: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeVýčet: CryptoApi, XmlDsig, Unknown
CertificateHolderObaluje podepisování X509Certificate2

Viz také:

 Čeština