التوقيعات الرقمية

التوقيعات الرقمية

التوقيعات الرقمية

يمكن لـ 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 الأساسية حتى تتمكن من فحص حقول الشهادة القياسية (المُصدر، الموضوع، فترة الصلاحية) باستخدام واجهات برمجة الشهادات الخاصة بـ .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تعداد: CryptoApi, XmlDsig, Unknown
CertificateHolderيغلف عملية التوقيع X509Certificate2

انظر أيضاً

 العربية