Digitális aláírások
Digitális aláírások
Aspose.Words FOSS for .NET képes ellenőrizni és hitelesíteni a már csatolt digitális aláírásokat egy .docx dokumentumon keresztül a Aspose.Words.DigitalSignatures névtéren. Ez a kiadás lefedi az aláírást verification — az aláírás metaadatainak olvasása, a érvényesség ellenőrzése és az aláíró tanúsítvány vizsgálata. Nem tartalmazza az új aláírások létrehozásának lehetőségét egy dokumentumban.
Aláírások olvasása egy dokumentumból
Minden Document egy DigitalSignatures tulajdonságot biztosít, amely egy DigitalSignatureCollection értéket ad vissza — egy csak olvasható, felsorolható gyűjteményt a betöltött fájlban már meglévő DigitalSignature objektumokról. A DigitalSignatureUtil.LoadSignatures(fileName) (és a LoadSignatures(stream) túlterhelés) közvetlenül fájlból vagy adatfolyamból olvassa be az aláírásokat anélkül, hogy a teljes dokumentumot egy Document objektumba töltené be, ami akkor hasznos, ha csak az aláírás állapotát kell ellenőrizni. A gyűjtemény IsValid tulajdonsága jelzi, hogy a benne lévő összes aláírás érvényes-e, a Count pedig azt, hogy hány aláírást találtak.
Egyedi aláírás vizsgálata
Minden DigitalSignature a következőket teszi elérhetővé: IsValid (az aláírás kriptográfiai érvényessége), SignatureType (egy DigitalSignatureType érték — CryptoApi, XmlDsig vagy Unknown), SignTime, Comments, SubjectName, IssuerName, valamint a nyers SignatureValue bájtok. A CertificateHolder tulajdonság egy CertificateHolder objektumot ad vissza, amely az aláíró tanúsítványt becsomagolja; annak Certificate tulajdonsága a mögöttes X509Certificate2 értéket teszi hozzáférhetővé, így a .NET saját tanúsítvány API-jaival vizsgálhatja a szabványos tanúsítványmezőket (kiállító, alany, érvényességi időszak).
Mi nem támogatott ebben a kiadásban
A API felület továbbra is deklarál aláírással kapcsolatos tagokat — DigitalSignatureUtil.Sign(), SignOptions, és XmlDsigLevel — a kereskedelmi Aspose.Words for .NET objektummodell struktúrájának kompatibilitása érdekében, de új digitális aláírás létrehozása egy dokumentumban nem működik ebben a FOSS kiadásban. Használd ezt a kiadást a verify már meglévő aláírások dokumentumban; egy aláírási munkafolyamat megköveteli Aspose.Words a(z) .NET számára.
Tippek és legjobb gyakorlatok
- Előnyben részesítse a
DigitalSignatureUtil.LoadSignatures()használatát a teljesDocumentmegnyitása helyett, ha csak annak ellenőrzése szükséges, hogy egy fájl alá van-e írva — ez elkerüli a teljes dokumentumtörzs feldolgozásának költségét. - Először ellenőrizze a
DigitalSignatureCollection.IsValidértéket a gyors siker/sikertelenség meghatározásához, mielőtt egyenként iterálná aDigitalSignature.IsValidértékeket. - A
SignatureTypemegmutatja, hogy melyik aláírási mechanizmus hozta létre az aláírást (CryptoApivs.XmlDsig); ez befolyásolja, hogy mely tanúsítványmezők relevánsak. - Kezelje a
IsValid == falseértéket szigorú hibaként minden automatizált dokumentumfelvételi folyamatban — ne mutassa meg az aláírás metaadatait egy érvénytelen aláírásból megbízhatóként.
Gyakori problémák
| Probléma | Oka | Javítás |
|---|---|---|
DigitalSignatures.Count 0 egy aláírt .docx esetén | A fájlt egy eszköz mentette újra, amely eltávolította az aláírási részt | Ellenőrizze az eredeti aláírt fájl alapján, ne egy újra elmentett másolatot |
Az aláírás jelentése IsValid = false | A dokumentum tartalma a aláírás után megváltozott, vagy a tanúsítvány nem megbízható/lejárt | Érvénytelennek tekintse; ne próbálja meg "repair" az aláírást |
| A dokumentum aláírásának kísérlete nem jár eredménnyel | Az aláírás nincs megvalósítva ebben a FOSS kiadásban | Használja a Aspose.Words-t a .NET (kereskedelmi) aláírási munkafolyamatokhoz |
CertificateHolder.Certificate kivételt dob a vizsgálat során | Az alaptanúsítvány adatai hibásak, vagy az aláírás része sérült | Erősítse meg, hogy a forrásfájl egy eredeti, módosítatlan aláírt dokumentum |
FAQ
Aláírhat a Aspose.Words FOSS a .NET dokumentumot?
Nem. Ez a kiadás képes ellenőrizni a meglévő digitális aláírásokat, de nem tud újakat létrehozni. A DigitalSignatureUtil.Sign() metódus és a SignOptions osztály a API felületén létezik strukturális kompatibilitás céljából, de az aláírás itt nem működik.
Hogyan ellenőrizhetem, hogy egy dokumentum alá van-e írva anélkül, hogy teljesen betölteném?
Hívja meg a DigitalSignatureUtil.LoadSignatures(fileName) függvényt, amely közvetlenül a fájlból visszaad egy DigitalSignatureCollection értéket.
Mit jelent a DigitalSignatureCollection.IsValid?
Ez true csak akkor, ha a gyűjteményben lévő minden aláírás egyenként érvényes — egy gyors módja a dokumentum aláírási integritásának ellenőrzésére, mielőtt minden DigitalSignature részletet megvizsgálnánk.
Hol találom meg az aláírás tanúsítványának részleteit?
A DigitalSignature.CertificateHolder.Certificate segítségével, amely egy szabványos .NET X509Certificate2 értéket ad vissza.
API Reference Összefoglaló
| Osztály / Metódus | Leírás |
|---|---|
Document.DigitalSignatures | Aláírások, amelyek már csatolva vannak a betöltött dokumentumhoz |
DigitalSignatureUtil.LoadSignatures() | Aláírások beolvasása fájlból vagy adatfolyamból a teljes dokumentum betöltése nélkül |
DigitalSignatureCollection | Csak olvasható gyűjtemény a(z) DigitalSignature objektumokból; IsValid, Count |
DigitalSignature | Egyetlen aláírás: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder |
DigitalSignatureType | Enum: CryptoApi, XmlDsig, Unknown |
CertificateHolder | Becsomagolja a signing X509Certificate2 |