Digitala signaturer

Digitala signaturer

Aspose.Words FOSS för .NET kan inspektera och verifiera digitala signaturer som redan är bifogade till en .docx dokument genom den Aspose.Words.DigitalSignatures namnrymd. Denna utgåva täcker signatur verification — läsa signaturmetadata, kontrollera giltighet och granska signeringscertifikatet. Den inkluderar inte möjligheten att skapa nya signaturer i ett dokument.


Läsa signaturer från ett dokument

Varje Document exponerar en DigitalSignatures egenskap som returnerar en DigitalSignatureCollection — en skrivskyddad, uppräkningsbar samling av DigitalSignature objekt som redan finns i den laddade filen. DigitalSignatureUtil.LoadSignatures(fileName) (och LoadSignatures(stream)-överladdningen) läser signaturer direkt från en fil eller ström utan att ladda hela dokumentet i ett Document objekt, vilket är användbart när du bara behöver kontrollera signaturstatus. IsValid-egenskapen för samlingen rapporterar huruvida varje signatur den innehåller är giltig, och Count rapporterar hur många signaturer som hittades.


Inspektera en enskild signatur

Varje DigitalSignature exponerar IsValid (om signaturen är kryptografiskt giltig), SignatureType (ett DigitalSignatureType värde — CryptoApi, XmlDsig eller Unknown), SignTime, Comments, SubjectName, IssuerName och de råa SignatureValue bytes. CertificateHolder-egenskapen returnerar ett CertificateHolder objekt som omsluter signeringscertifikatet; dess Certificate-egenskap exponerar den underliggande X509Certificate2 så att du kan inspektera standardcertifikatfält (utfärdare, ämne, giltighetsperiod) med .NET s egna certifikat-API:er.


Vad som inte stöds i denna utgåva

Ytan för API deklarerar fortfarande signaturrelaterade medlemmar — DigitalSignatureUtil.Sign(), SignOptions, och XmlDsigLevel — för strukturell kompatibilitet med den kommersiella Aspose.Words för .NET objektmodellen, men att skapa en ny digital signatur i ett dokument är inte funktionellt i denna FOSS-utgåva. Använd denna utgåva för att verify signaturer som redan finns i ett dokument; ett signeringsflöde kräver Aspose.Words för .NET.


Tips och bästa praxis

  • Föredra DigitalSignatureUtil.LoadSignatures() framför att öppna hela Document när du bara behöver kontrollera om en fil är signerad — det undviker kostnaden för att parsra hela dokumentkroppen.
  • Kontrollera DigitalSignatureCollection.IsValid först för ett snabbt godkännande/avslag innan du itererar över enskilda DigitalSignature.IsValid-värden.
  • SignatureType berättar vilken signaturmekanism som skapade signaturen (CryptoApi vs. XmlDsig); detta påverkar vilka certifikatfält som är meningsfulla.
  • Behandla IsValid == false som ett hårt felvillkor i alla automatiserade dokumentintags-pipelines — exponera inte signaturmetadata från en ogiltig signatur som pålitlig.

Vanliga problem

ProblemOrsakÅtgärd
DigitalSignatures.Count är 0 på en signerad .docxFilen sparades om av ett verktyg som tog bort signaturdelenVerifiera mot den ursprungliga signerade filen, inte en om-sparad kopia
Signaturen rapporterar IsValid = falseDokumentets innehåll har ändrats efter signering, eller så är certifikatet opålitligt/utgångetBehandla som ogiltig; försök inte “reparera” signaturen
Att försöka signera ett dokument har ingen effektSignering är inte implementerad i denna FOSS-utgåvaAnvänd Aspose.Words för .NET (kommersiell) för signeringsflöden
CertificateHolder.Certificate kastar ett fel vid inspektionUnderliggande certifikatdata är felaktigt formaterade eller signaturdelen är korruptBekräfta att källfilen är ett äkta, oförändrat signerat dokument

FAQ

Kan Aspose.Words FOSS för .NET signera ett dokument?

Nej. Denna utgåva kan verifiera befintliga digitala signaturer men kan inte skapa nya. Metoden DigitalSignatureUtil.Sign() och klassen SignOptions finns i API-ytan för strukturell kompatibilitet, men signering är inte funktionell här.

Hur kontrollerar jag om ett dokument är signerat utan att ladda det helt?

Anropa DigitalSignatureUtil.LoadSignatures(fileName), som returnerar en DigitalSignatureCollection direkt från filen.

Vad betyder DigitalSignatureCollection.IsValid?

Det är true endast när varje signatur i samlingen är individuellt giltig — ett snabbt sätt att kontrollera hela dokumentets signaturintegritet innan varje DigitalSignature inspekteras.

Var får jag certifikatdetaljerna för en signatur?

Via DigitalSignature.CertificateHolder.Certificate, som returnerar en standard .NET X509Certificate2.


API Reference Sammanfattning

Klass / MetodBeskrivning
Document.DigitalSignaturesSignaturer som redan är bifogade till ett laddat dokument
DigitalSignatureUtil.LoadSignatures()Läs signaturer från en fil eller ström utan att ladda hela dokumentet
DigitalSignatureCollectionSkrivskyddad samling av DigitalSignature-objekt; IsValid, Count
DigitalSignatureEn enda signatur: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeEnum: CryptoApi, XmlDsig, Unknown
CertificateHolderOmsluter signeringen X509Certificate2

Se även

 Svenska