إضافة توقيعات رقمية إلى العروض التقديمية في .NET

شهادة رقمية تُستخدم لإنشاء عرض تقديمي 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 digital signing test.";

    // إضافة توقيع رقمي إلى العرض التقديمي
    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("Signatures used to sign the presentation: ");

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

        if (allSignaturesAreValid)
            Console.WriteLine("Presentation is genuine, all signatures are valid.");
        else
            Console.WriteLine("Presentation has been modified since signing.");
    }
}

الأسئلة المتكررة

هل يمكنني إزالة التوقيعات الموجودة من ملف؟

نعم. تدعم مجموعة التوقيعات الرقمية إزالة العناصر الفردية ومسحها بالكامل; بعد حفظ الملف، لن يحتوي العرض على أي توقيعات.

هل يصبح الملف “للقراءة فقط” بعد التوقيع؟

لا. يحافظ التوقيع على النزاهة والملكية ولكنه لا يمنع التعديلات. لتقييد التحرير، يمكن دمجه مع “Read-only” أو كلمة مرور.

هل سيظهر التوقيع بشكل صحيح في إصدارات PowerPoint المختلفة؟

يتم إنشاء التوقيع لحاوية OOXML (PPTX). الإصدارات الحديثة من PowerPoint التي تدعم توقيعات OOXML تعرض حالة هذه التوقيعات بشكل صحيح.