التوقيع الرقمي في PowerPoint

الشهادة الرقمية تُستخدم لإنشاء عرض PowerPoint محمي بكلمة مرور، مُعلمة كإنشاء من قبل منظمة أو شخص معين. يمكن الحصول على الشهادة الرقمية عن طريق الاتصال بمنظمة مرخصة - وهي جهة إصدار الشهادات. بعد تثبيت الشهادة الرقمية في النظام، يمكن استخدامها لإضافة توقيع رقمي إلى العرض عبر ملف -> معلومات -> حماية العرض:

todo:image_alt_text

يمكن أن يحتوي العرض على أكثر من توقيع رقمي واحد. بعد إضافة التوقيع الرقمي إلى العرض، ستظهر رسالة خاصة في PowerPoint:

todo:image_alt_text

لتوقيع العرض أو التحقق من صحة توقيعاته، يوفر Aspose.Slides API واجهة IDigitalSignature وواجهة IDigitalSignatureCollection وIPresentation.DigitalSignatures خاصية. حالياً، يتم دعم التوقيعات الرقمية لصيغة PPTX فقط.

إضافة توقيع رقمي من شهادة PFX

توضح عينة الكود أدناه كيفية إضافة توقيع رقمي من شهادة PFX:

  1. افتح ملف PFX ومرر كلمة مرور PFX إلى DigitalSignature كائن.
  2. أضف التوقيع الذي تم إنشاؤه إلى كائن العرض.
using (Presentation pres = new Presentation())
{
    // إنشاء كائن DigitalSignature مع ملف PFX وكلمة مرور PFX 
    DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");

    // تعليق توقيع رقمي جديد
    signature.Comments = "اختبار التوقيع الرقمي في Aspose.Slides.";

    // إضافة التوقيع الرقمي إلى العرض
    pres.DigitalSignatures.Add(signature);

    // حفظ العرض
    pres.Save("SomePresentationSigned.pptx", SaveFormat.Pptx);
}

الآن أصبح من الممكن التحقق مما إذا كان العرض قد تم توقيعه رقمياً ولم يتم تعديله:

// فتح العرض
using (Presentation pres = new Presentation("SomePresentationSigned.pptx"))
{
    if (pres.DigitalSignatures.Count > 0)
    {
        bool allSignaturesAreValid = true;

        Console.WriteLine("التوقيعات المستخدمة لتوقيع العرض: ");

        // تحقق مما إذا كانت جميع التوقيعات الرقمية صالحة
        foreach (DigitalSignature signature in pres.DigitalSignatures)
        {
            Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
                    + signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "صالح" : "غير صالح"));
            allSignaturesAreValid &= signature.IsValid;
        }

        if (allSignaturesAreValid)
            Console.WriteLine("العرض أصلي، جميع التوقيعات صالحة.");
        else
            Console.WriteLine("تم تعديل العرض منذ التوقيع.");
    }
}