Tanda Tangan Digital

Tanda Tangan Digital

Aspose.Words FOSS untuk .NET dapat memeriksa dan memverifikasi tanda tangan digital yang sudah terlampir pada sebuah .docx dokumen melalui Aspose.Words.DigitalSignatures namespace. Edisi ini mencakup tanda tangan verification — membaca metadata tanda tangan, memeriksa keabsahan, dan memeriksa sertifikat penandatangan. Tidak termasuk kemampuan untuk membuat tanda tangan baru pada sebuah dokumen.


Membaca Tanda Tangan dari Dokumen

Setiap Document mengekspos properti DigitalSignatures yang mengembalikan DigitalSignatureCollection — sebuah koleksi hanya-baca, dapat diiterasi dari objek DigitalSignature yang sudah ada di file yang dimuat. DigitalSignatureUtil.LoadSignatures(fileName) (dan overload LoadSignatures(stream)) membaca tanda tangan secara langsung dari file atau aliran tanpa memuat seluruh dokumen ke dalam objek Document, yang berguna ketika Anda hanya perlu memeriksa status tanda tangan. Properti IsValid pada koleksi melaporkan apakah setiap tanda tangan yang dikandungnya valid, dan Count melaporkan berapa banyak tanda tangan yang ditemukan.


Memeriksa Tanda Tangan Individu

Setiap DigitalSignature mengekspos IsValid (apakah tanda tangan secara kriptografis valid), SignatureType (nilai DigitalSignatureType — CryptoApi, XmlDsig, atau Unknown), SignTime, Comments, SubjectName, IssuerName, dan byte mentah SignatureValue. Properti CertificateHolder mengembalikan objek CertificateHolder yang membungkus sertifikat penandatangan; properti Certificate mengekspos X509Certificate2 yang mendasarinya sehingga Anda dapat memeriksa bidang standar sertifikat (issuer, subject, validity period) dengan API sertifikat milik .NET.


Apa yang Tidak Didukung dalam Edisi Ini

Permukaan API masih mendeklarasikan anggota terkait penandatanganan — DigitalSignatureUtil.Sign(), SignOptions, dan XmlDsigLevel — untuk kompatibilitas struktural dengan model objek Aspose.Words komersial untuk .NET, tetapi membuat tanda tangan digital baru pada sebuah dokumen tidak berfungsi dalam edisi FOSS ini. Gunakan edisi ini untuk verify tanda tangan yang sudah ada dalam sebuah dokumen; alur kerja penandatanganan memerlukan Aspose.Words untuk .NET.


Tips dan Praktik Terbaik

  • Lebih pilih DigitalSignatureUtil.LoadSignatures() daripada membuka Document secara lengkap ketika Anda hanya perlu memeriksa apakah sebuah file ditandatangani — ini menghindari biaya parsing seluruh isi dokumen.
  • Periksa DigitalSignatureCollection.IsValid terlebih dahulu untuk lulus/gagal cepat sebelum mengiterasi nilai DigitalSignature.IsValid individual.
  • SignatureType memberi tahu Anda mekanisme penandatanganan mana yang menghasilkan tanda tangan (CryptoApi vs. XmlDsig); ini memengaruhi bidang sertifikat mana yang bermakna.
  • Anggap IsValid == false sebagai kondisi kegagalan keras dalam setiap pipeline pengambilan dokumen otomatis — jangan menampilkan metadata tanda tangan dari tanda tangan yang tidak valid sebagai dapat dipercaya.

Masalah Umum

MasalahPenyebabPerbaikan
DigitalSignatures.Count adalah 0 pada .docx yang ditandatanganiFile disimpan ulang oleh alat yang menghapus bagian tanda tanganVerifikasi terhadap file yang ditandatangani asli, bukan salinan yang disimpan ulang
Tanda tangan melaporkan IsValid = falseKonten dokumen berubah setelah penandatanganan, atau sertifikat tidak tepercaya/kadaluarsaAnggap tidak valid; jangan mencoba “repair” tanda tangan
Mencoba menandatangani dokumen tidak menghasilkan apa-apaPenandatanganan belum diimplementasikan dalam edisi FOSS iniGunakan Aspose.Words untuk .NET (komersial) untuk alur kerja penandatanganan
CertificateHolder.Certificate menimbulkan pengecualian saat diperiksaData sertifikat yang mendasari rusak formatnya atau bagian tanda tangan korupPastikan file sumber adalah dokumen bertanda tangan yang asli dan tidak dimodifikasi

FAQ

Apakah Aspose.Words FOSS untuk .NET dapat menandatangani dokumen?

Tidak. Edisi ini dapat memverifikasi tanda tangan digital yang ada tetapi tidak dapat membuat yang baru. Metode DigitalSignatureUtil.Sign() dan kelas SignOptions ada di permukaan API untuk kompatibilitas struktural, tetapi penandatanganan tidak berfungsi di sini.

Bagaimana saya memeriksa apakah sebuah dokumen ditandatangani tanpa memuatnya sepenuhnya?

Panggil DigitalSignatureUtil.LoadSignatures(fileName), yang mengembalikan DigitalSignatureCollection langsung dari file.

Apa arti DigitalSignatureCollection.IsValid?

Ini adalah true hanya ketika setiap tanda tangan dalam koleksi secara individual valid — cara cepat untuk memeriksa integritas tanda tangan dokumen secara keseluruhan sebelum memeriksa setiap DigitalSignature.

Di mana saya dapat memperoleh detail sertifikat untuk sebuah tanda tangan?

Melalui DigitalSignature.CertificateHolder.Certificate, yang mengembalikan .NET X509Certificate2 standar.


API Reference Ringkasan

Kelas / MetodeDeskripsi
Document.DigitalSignaturesTanda tangan sudah terlampir pada dokumen yang dimuat
DigitalSignatureUtil.LoadSignatures()Baca tanda tangan dari file atau aliran tanpa memuat seluruh dokumen
DigitalSignatureCollectionKoleksi hanya-baca dari objek DigitalSignature; IsValid, Count
DigitalSignatureSatu tanda tangan: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder
DigitalSignatureTypeEnum: CryptoApi, XmlDsig, Unknown
CertificateHolderMembungkus penandatanganan X509Certificate2

Lihat Juga

 Bahasa Indonesia