Dijital İmzalar
Dijital İmzalar
Aspose.Words FOSS for .NET zaten birine eklenmiş dijital imzaları inceleyebilir ve doğrulayabilir .docx belge üzerinden Aspose.Words.DigitalSignatures ad alanı. Bu sürüm imza verification — imza meta verilerini okuma, geçerliliği kontrol etme ve imzalayan sertifikayı inceleme. Bir belgede yeni imzalar oluşturma yeteneğini içermez.
Bir Belgede İmzaları Okuma
Her Document, bir DigitalSignatures özelliği sunar ve bu özellik bir DigitalSignatureCollection döndürür — yüklü dosyada zaten bulunan DigitalSignature nesnelerinin salt okunur, sayılabilir koleksiyonu. DigitalSignatureUtil.LoadSignatures(fileName) (ve LoadSignatures(stream) aşırı yüklemesi), tam belgeyi bir Document nesnesine yüklemeden, doğrudan bir dosyadan veya akıştan imzaları okur; bu, yalnızca imza durumunu kontrol etmeniz gerektiğinde faydalıdır. Koleksiyonun IsValid özelliği, içinde bulunan her imzanın geçerli olup olmadığını rapor eder ve Count bulunan imza sayısını rapor eder.
Tek Bir İmzayı İnceleme
Her DigitalSignature, IsValid (imzanın kriptografik olarak geçerli olup olmadığı), SignatureType (bir DigitalSignatureType değeri — CryptoApi, XmlDsig veya Unknown), SignTime, Comments, SubjectName, IssuerName ve ham SignatureValue baytlarını ortaya koyar. CertificateHolder özelliği, imzalayan sertifikayı saran bir CertificateHolder nesnesi döndürür; onun Certificate özelliği, temel X509Certificate2‘i ortaya çıkarır, böylece .NET’nin kendi sertifika API’leriyle standart sertifika alanlarını (veren, konu, geçerlilik süresi) inceleyebilirsiniz.
Bu Sürümde Desteklenmeyenler
API yüzeyi hâlâ imzalama ile ilgili üyeleri — DigitalSignatureUtil.Sign(), SignOptions, ve XmlDsigLevel — ticari Aspose.Words for .NET nesne modeliyle yapısal uyumluluk sağlamak için, ancak bir belgede yeni bir dijital imza oluşturmak bu FOSS sürümünde işlevsel değildir. Bu sürümü şunlar için kullanın verify belgede zaten var olan imzalar için; bir imzalama iş akışı gerektirir Aspose.Words için .NET.
İpuçları ve En İyi Uygulamalar
- Sadece bir dosyanın imzalı olup olmadığını kontrol etmeniz gerektiğinde tam
Document‘i açmak yerineDigitalSignatureUtil.LoadSignatures()‘i tercih edin — bu, tüm belge gövdesini ayrıştırma maliyetini önler. - Bireysel
DigitalSignature.IsValiddeğerlerini yinelemeden önce hızlı bir geç/başarısız kontrolü için önceDigitalSignatureCollection.IsValid‘i kontrol edin. SignatureType, imzayı hangi imzalama mekanizmasının ürettiğini (CryptoApivs.XmlDsig) size bildirir; bu, hangi sertifika alanlarının anlamlı olduğunu etkiler.- Herhangi bir otomatik belge alım hattında
IsValid == false‘i kesin bir başarısızlık durumu olarak ele alın — geçersiz bir imzadan gelen imza meta verilerini güvenilir olarak ortaya çıkarmayın.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
DigitalSignatures.Count bir imzalı .docx üzerinde 0’dur | Dosya, imza bölümünü kaldıran bir araç tarafından yeniden kaydedildi. | Orijinal imzalı dosyaya karşı doğrulayın, yeniden kaydedilmiş bir kopya değil. |
İmza IsValid = false rapor ediyor | İmzaladıktan sonra belge içeriği değişti veya sertifika güvenilmiyor/ süresi dolmuş | Geçersiz olarak ele alın; imzayı “onarım” yapmaya çalışmayın |
| Belgeyi imzalamaya çalışmak hiçbir etki yaratmaz | İmzalama bu FOSS sürümünde uygulanmamıştır | Aspose.Words öğesini .NET (ticari) imzalama iş akışları için kullanın |
CertificateHolder.Certificate incelendiğinde hata fırlatır | Alttaki sertifika verileri hatalı biçimlendirilmiş veya imza bölümü bozulmuş | Kaynak dosyanın gerçek, değiştirilmemiş bir imzalı belge olduğunu doğrulayın |
FAQ
Aspose.Words FOSS for .NET bir belgeyi imzalayabilir mi?
Hayır. Bu sürüm mevcut dijital imzaları doğrulayabilir ancak yeni imzalar oluşturamaz. DigitalSignatureUtil.Sign() yöntemi ve SignOptions sınıfı, yapısal uyumluluk için API yüzeyinde bulunur, ancak burada imzalama işlevsel değildir.
Bir belgeyi tamamen yüklemeden imzalı olup olmadığını nasıl kontrol ederim?
Dosyadan doğrudan bir DigitalSignatureCollection döndüren DigitalSignatureUtil.LoadSignatures(fileName)‘ı çağırın.
DigitalSignatureCollection.IsValid ne anlama geliyor?
Bu, koleksiyondaki her imza ayrı ayrı geçerli olduğunda true olur — her DigitalSignature‘ı incelemeden önce belge imza bütünlüğünü hızlıca kontrol etmenin bir yoludur.
Bir imzanın sertifika ayrıntılarını nereden alabilirim?
DigitalSignature.CertificateHolder.Certificate aracılığıyla, standart bir .NET X509Certificate2 döndürür.
API Reference Özet
| Sınıf / Metot | Açıklama |
|---|---|
Document.DigitalSignatures | Yüklenmiş bir belgeye zaten eklenmiş imzalar |
DigitalSignatureUtil.LoadSignatures() | Tam belgeyi yüklemeden bir dosyadan veya akıştan imzaları okuyun |
DigitalSignatureCollection | Yalnızca okunabilir DigitalSignature nesnelerinin koleksiyonu; IsValid, Count |
DigitalSignature | Tek bir imza: IsValid, SignTime, SubjectName, IssuerName, CertificateHolder |
DigitalSignatureType | Enum: CryptoApi, XmlDsig, Unknown |
CertificateHolder | İmzalama X509Certificate2‘ı sarar |