Ψηφιακές Υπογραφές

Ψηφιακές Υπογραφές

Aspose.Words FOSS για .NET μπορεί να επιθεωρήσει και να επαληθεύσει ψηφιακές υπογραφές που είναι ήδη συνδεδεμένες σε ένα .docx έγγραφο μέσω του Aspose.Words.DigitalSignatures χώρο ονομάτων. Αυτή η έκδοση καλύπτει την υπογραφή verification — ανάγνωση μεταδεδομένων υπογραφής, έλεγχο εγκυρότητας και εξέταση του πιστοποιητικού υπογραφής. Δεν περιλαμβάνει τη δυνατότητα δημιουργίας νέων υπογραφών σε ένα έγγραφο.


Ανάγνωση Υπογραφών από Έγγραφο

Κάθε Document εκθέτει μια ιδιότητα DigitalSignatures που επιστρέφει ένα DigitalSignatureCollection — μια συλλογή μόνο για ανάγνωση, απαριθμήσιμη, των αντικειμένων DigitalSignature που είναι ήδη παρόντα στο φορτωμένο αρχείο. Το DigitalSignatureUtil.LoadSignatures(fileName) (και η υπερφόρτωση LoadSignatures(stream)) διαβάζει τις υπογραφές απευθείας από ένα αρχείο ή ροή χωρίς να φορτώνει ολόκληρο το έγγραφο σε ένα αντικείμενο Document, κάτι που είναι χρήσιμο όταν χρειάζεται μόνο να ελέγξετε την κατάσταση της υπογραφής. Η ιδιότητα IsValid της συλλογής αναφέρει αν κάθε υπογραφή που περιέχει είναι έγκυρη, και το Count αναφέρει πόσες υπογραφές βρέθηκαν.


Επιθεώρηση Μιας Μεμονωμένης Υπογραφής

Κάθε DigitalSignature εκθέτει IsValid (αν η υπογραφή είναι κρυπτογραφικά έγκυρη), SignatureType (μια τιμή DigitalSignatureType — CryptoApi, XmlDsig, ή Unknown), SignTime, Comments, SubjectName, IssuerName, και τα ακατέργαστα SignatureValue bytes. Η ιδιότητα CertificateHolder επιστρέφει ένα αντικείμενο CertificateHolder που περιβάλλει το πιστοποιητικό υπογραφής· η ιδιότητα Certificate του εκθέτει το υποκείμενο X509Certificate2 ώστε να μπορείτε να επιθεωρήσετε τα τυπικά πεδία του πιστοποιητικού (εκδότης, υποκείμενο, περίοδος ισχύος) με τις δικές του API πιστοποιητικών του .NET.


Τι Δεν Υποστηρίζεται σε Αυτή την Έκδοση

Η επιφάνεια API εξακολουθεί να δηλώνει μέλη σχετιζόμενα με την υπογραφή — DigitalSignatureUtil.Sign(), SignOptions, και XmlDsigLevel — για δομική συμβατότητα με το εμπορικό Aspose.Words για το μοντέλο αντικειμένων .NET, αλλά η δημιουργία νέας ψηφιακής υπογραφής σε ένα έγγραφο δεν είναι λειτουργική σε αυτήν την έκδοση FOSS. Χρησιμοποιήστε αυτήν την έκδοση για verify υπογραφές που ήδη υπάρχουν σε ένα έγγραφο· μια ροή εργασίας υπογραφής απαιτεί Aspose.Words για .NET.


Συμβουλές και βέλτιστες πρακτικές

  • Προτιμήστε το DigitalSignatureUtil.LoadSignatures() αντί για το άνοιγμα του πλήρους Document όταν χρειάζεται μόνο να ελέγξετε αν ένα αρχείο είναι υπογεγραμμένο — αποφεύγει το κόστος της ανάλυσης ολόκληρου του σώματος του εγγράφου.
  • Ελέγξτε πρώτα το DigitalSignatureCollection.IsValid για γρήγορο αποτέλεσμα επιτυχίας/αποτυχίας πριν επαναλάβετε τις μεμονωμένες τιμές του DigitalSignature.IsValid.
  • Το SignatureType σας λέει ποιος μηχανισμός υπογραφής παρήγαγε την υπογραφή (CryptoApi έναντι XmlDsig); αυτό επηρεάζει ποια πεδία του πιστοποιητικού είναι σημαντικά.
  • Αντιμετωπίστε το IsValid == false ως κατάσταση σκληρής αποτυχίας σε οποιοδήποτε αυτοματοποιημένο pipeline εισαγωγής εγγράφων — μην εμφανίζετε τα μεταδεδομένα της υπογραφής από μια μη έγκυρη υπογραφή ως αξιόπιστα.

Κοινά προβλήματα

ΠρόβλημαΑιτίαΔιόρθωση
DigitalSignatures.Count είναι 0 σε ένα υπογεγραμμένο .docxΤο αρχείο αποθηκεύτηκε ξανά από ένα εργαλείο που αφαίρεσε το τμήμα της υπογραφήςΕπαληθεύστε σε σχέση με το αρχικό υπογεγραμμένο αρχείο, όχι με ένα αποθηκευμένο ξανά αντίγραφο
Η υπογραφή αναφέρει IsValid = falseΤο περιεχόμενο του εγγράφου άλλαξε μετά την υπογραφή, ή το πιστοποιητικό δεν είναι αξιόπιστο/έχει λήξειΑντιμετωπίζεται ως άκυρο· μην προσπαθήσετε να “repair” την υπογραφή
Η προσπάθεια υπογραφής ενός εγγράφου δεν έχει αποτέλεσμαΗ υπογραφή δεν έχει υλοποιηθεί σε αυτήν την έκδοση FOSSΧρησιμοποιήστε Aspose.Words για .NET (εμπορικό) για τις ροές εργασίας υπογραφής
CertificateHolder.Certificate προκαλεί εξαίρεση όταν επιθεωρείταιΤα υποκείμενα δεδομένα του πιστοποιητικού είναι κατεστραμμένα ή το τμήμα της υπογραφής είναι κατεστραμμένοΕπιβεβαιώστε ότι το αρχείο προέλευσης είναι ένα αυθεντικό, αμετάβλητο υπογεγραμμένο έγγραφο

FAQ

Μπορεί το Aspose.Words FOSS για το .NET να υπογράψει ένα έγγραφο;

Όχι. Αυτή η έκδοση μπορεί να επαληθεύσει υπάρχουσες ψηφιακές υπογραφές, αλλά δεν μπορεί να δημιουργήσει νέες. Η μέθοδος DigitalSignatureUtil.Sign() και η κλάση SignOptions υπάρχουν στην επιφάνεια του API για δομική συμβατότητα, αλλά η υπογραφή δεν είναι λειτουργική εδώ.

Πώς μπορώ να ελέγξω αν ένα έγγραφο είναι υπογεγραμμένο χωρίς να το φορτώσω πλήρως;

Καλέστε το DigitalSignatureUtil.LoadSignatures(fileName), το οποίο επιστρέφει ένα DigitalSignatureCollection απευθείας από το αρχείο.

Τι σημαίνει το DigitalSignatureCollection.IsValid;

Είναι true μόνο όταν κάθε υπογραφή στη συλλογή είναι ατομικά έγκυρη — ένας γρήγορος τρόπος να ελέγξετε τη συνολική ακεραιότητα των υπογραφών του εγγράφου πριν ελέγξετε κάθε DigitalSignature.

Από πού μπορώ να λάβω τα στοιχεία του πιστοποιητικού για μια υπογραφή;

Μέσω του DigitalSignature.CertificateHolder.Certificate, το οποίο επιστρέφει ένα τυπικό .NET X509Certificate2.


API Reference Σύνοψη

Κλάση / ΜέθοδοςΠεριγραφή
Document.DigitalSignaturesΥπογραφές που έχουν ήδη επισυναφθεί σε φορτωμένο έγγραφο
DigitalSignatureUtil.LoadSignatures()Διαβάστε υπογραφές από αρχείο ή ροή χωρίς να φορτώνετε ολόκληρο το έγγραφο
DigitalSignatureCollectionΣυλλογή μόνο για ανάγνωση αντικειμένων DigitalSignature; IsValid, Count
DigitalSignatureΜία μόνο υπογραφή: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeΑπαρίθμηση: CryptoApi, XmlDsig, Unknown
CertificateHolderΤυλίγει την υπογραφή X509Certificate2

Δείτε επίσης

 Ελληνικά