חתימות דיגיטליות
חתימות דיגיטליות
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 הגולמיים. נכס 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כתנאי כישלון חמור בכל צינור קבלת מסמכים אוטומטי — אל תציג מטא-נתוני חתימה מחתימה לא תקפה כאמינים.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
DigitalSignatures.Count הוא 0 על .docx חתום | הקובץ נשמר מחדש על ידי כלי שהסיר את חלק החתימה | אמת כנגד הקובץ החתום המקורי, ולא עותק שנשמר מחדש |
החתימה מדווחת על IsValid = false | תוכן המסמך שונה לאחר החתימה, או שהאישור אינו מהימן/פג תוקף | התייחס כבלתי תקף; אל תנסה “לתקן” את החתימה |
| ניסיון לחתום על מסמך אינו משפיע | ההחתימה אינה מיושמת בגרסה זו של 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 | Enum: CryptoApi, XmlDsig, Unknown |
CertificateHolder | מעטף את החתימה X509Certificate2 |