Semnături digitale

Semnături digitale

Aspose.Words FOSS pentru .NET poate inspecta și verifica semnăturile digitale care sunt deja atașate la un .docx document prin intermediul Aspose.Words.DigitalSignatures spațiului de nume. Această ediție acoperă semnătură verification — citirea metadatelor semnăturii, verificarea validității și examinarea certificatului de semnare. Nu include capacitatea de a crea semnături noi pe un document.


Citirea semnăturilor dintr-un document

Fiecare Document expune o proprietate DigitalSignatures care returnează un DigitalSignatureCollection — o colecție numai pentru citire, enumerabilă, de obiecte DigitalSignature deja prezente în fișierul încărcat. DigitalSignatureUtil.LoadSignatures(fileName) (și suprasarcina LoadSignatures(stream)) citește semnăturile direct dintr-un fișier sau flux fără a încărca documentul complet într-un obiect Document, ceea ce este util când trebuie doar să verificați starea semnăturii. Proprietatea IsValid a colecției raportează dacă fiecare semnătură conținută este validă, iar Count raportează câte semnături au fost găsite.


Inspectarea unei semnături individuale

Fiecare DigitalSignature expune IsValid (dacă semnătura este criptografic validă), SignatureType (o valoare DigitalSignatureType — CryptoApi, XmlDsig sau Unknown), SignTime, Comments, SubjectName, IssuerName și octeții brute SignatureValue. Proprietatea CertificateHolder returnează un obiect CertificateHolder care învelește certificatul de semnare; proprietatea sa Certificate expune X509Certificate2 de bază pentru a putea inspecta câmpurile standard ale certificatului (emitent, subiect, perioada de valabilitate) cu API-urile de certificate ale .NET.


Ce nu este suportat în această ediție

Suprafața API declară în continuare membri relaționați cu semnarea — DigitalSignatureUtil.Sign(), SignOptions, și XmlDsigLevel — pentru compatibilitate structurală cu modelul de obiecte Aspose.Words comercial pentru .NET, dar crearea unei noi semnături digitale pe un document nu este funcțională în această ediție FOSS. Folosiți această ediție pentru a verify semnăturile care există deja într-un document; un flux de lucru de semnare necesită Aspose.Words pentru .NET.


Sfaturi și practici recomandate

  • Preferați DigitalSignatureUtil.LoadSignatures() în loc să deschideți întregul Document când aveți nevoie doar să verificați dacă un fișier este semnat — evită costul analizei întregului corp al documentului.
  • Verificați mai întâi DigitalSignatureCollection.IsValid pentru un rezultat rapid de trecere/eșec înainte de a itera valorile individuale DigitalSignature.IsValid.
  • SignatureType vă spune ce mecanism de semnare a generat semnătura (CryptoApi vs. XmlDsig); acest lucru influențează care câmpuri ale certificatului sunt semnificative.
  • Tratați IsValid == false ca o condiție de eșec sever în orice flux automat de preluare a documentelor — nu expuneți metadatele semnăturii dintr-o semnătură invalidă ca fiind de încredere.

Probleme comune

ProblemăCauzăRemediere
DigitalSignatures.Count este 0 pe un .docx semnatFișierul a fost re-salvat de un instrument care a eliminat partea de semnăturăVerificați cu fișierul semnat original, nu cu o copie re-salvată
Semnătura raportează IsValid = falseConținutul documentului s-a modificat după semnare, sau certificatul nu este de încredere/expiratTratează ca fiind invalid; nu încerca să “repari” semnătura
Încercarea de a semna un document nu are niciun efectSemnarea nu este implementată în această ediție FOSSFolosește Aspose.Words pentru .NET (commercial) pentru fluxurile de lucru de semnare
CertificateHolder.Certificate aruncă o excepție când este inspectatDatele de bază ale certificatului sunt malformate sau partea de semnătură este coruptăConfirmă că fișierul sursă este un document semnat autentic, nemodificat

FAQ

Poate Aspose.Words FOSS pentru .NET să semneze un document?

Nu. Această ediție poate verifica semnăturile digitale existente, dar nu poate crea altele noi. Metoda DigitalSignatureUtil.Sign() și clasa SignOptions există în suprafața API pentru compatibilitate structurală, dar semnarea nu este funcțională aici.

Cum pot verifica dacă un document este semnat fără a-l încărca complet?

Apelă DigitalSignatureUtil.LoadSignatures(fileName), care returnează un DigitalSignatureCollection direct din fișier.

Ce înseamnă DigitalSignatureCollection.IsValid?

Este true numai atunci când fiecare semnătură din colecție este validă individual — o modalitate rapidă de a verifica integritatea generală a semnăturii documentului înainte de a inspecta fiecare DigitalSignature.

De unde pot obține detaliile certificatului pentru o semnătură?

Prin DigitalSignature.CertificateHolder.Certificate, care returnează un X509Certificate2 standard .NET.


API Reference Rezumat

Clasă / MetodăDescriere:
Document.DigitalSignaturesSemnăturile deja atașate unui document încărcat
DigitalSignatureUtil.LoadSignatures()Citește semnăturile dintr-un fișier sau flux fără a încărca întregul document
DigitalSignatureCollectionColecție numai în citire de obiecte DigitalSignature; IsValid, Count
DigitalSignatureO singură semnătură: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeEnum: CryptoApi, XmlDsig, Unknown
CertificateHolderÎmpachetează semnarea X509Certificate2

Vezi și:

 Română