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

نظرة عامة

تساعد تسميات الحساسية في Microsoft Purview المؤسسات على تصنيف المستندات وإدارتها. أثناء معالجة العرض التقديمي بشكل آلي، قد يحتاج التطبيق إلى الحفاظ على تسمية موجودة، أو تطبيق تسمية مختارة بواسطة سياسة، أو تحديث حالتها، أو ترحيل بيانات تسمية مكتوبة بواسطة سير عمل Microsoft Information Protection (MIP) أقدم.

Aspose.Slides تعرِض بيانات تعريف تسميات الحساسية الحديثة من خلال Presentation.SensitivityLabels. تُرجع هذه الخاصية مجموعة ISensitivityLabelCollection يمكن فحصها وتعديلها قبل حفظ العرض التقديمي كملف PPTX.

فهم خصائص تسمية الحساسية

كل ISensitivityLabel يحتوي على البيانات الوصفية التالية:

الخاصية الغرض
ISensitivityLabel.Id يحدد تسمية الحساسية في سياسة Purview.
ISensitivityLabel.SiteId يحدد الموقع المرتبط بسياسة التسمية.
ISensitivityLabel.IsEnabled يشير إلى ما إذا كانت التسمية ممكّنة.
ISensitivityLabel.IsRemoved يشير إلى أن التسمية قد تمت إزالتها. اضبط هذه الخاصية إلى true عندما يجب الاحتفاظ بحالة الإزالة في البيانات الوصفية.
ISensitivityLabel.AssignmentMethodType يحدد ما إذا تم تطبيق التسمية تلقائيًا أو عبر قرار المستخدم.
ISensitivityLabel.ContentMarkTypes يسرد أنواع العلامات المحتوى المرتبطة بالتسمية.

تصف تعداد SensitivityLabelAssignmentType طريقة تعيين التسمية:

تحديد تعداد SensitivityLabelContentType للعلامة المرتبطة بالتسمية:

القيمة المعنى
SensitivityLabelContentType.None تم تطبيق التسمية بشكل افتراضي أو تلقائي.
SensitivityLabelContentType.Header علامة محتوى الرأس مرتبطة بالتسمية.
SensitivityLabelContentType.Footer علامة محتوى التذييل مرتبطة بالتسمية.
SensitivityLabelContentType.Watermark علامة محتوى العلامة المائية مرتبطة بالتسمية.
SensitivityLabelContentType.Encryption الحماية بالتشفير مرتبطة بالتسمية.

يمكن ربط أنواع علامات متعددة بتسمية واحدة.

قائمة تسميات الحساسية الموجودة

اقرأ مجموعة التسميات الحديثة من Presentation.SensitivityLabels وعدها. المثال التالي يسرد كل خاصية وعلامة محتوى مخزّنة لكل تسمية:

using System;
using Aspose.Slides;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;

foreach (var sensitivityLabel in sensitivityLabels)
{
    Console.WriteLine("Label ID: " + sensitivityLabel.Id);
    Console.WriteLine("Site ID: " + sensitivityLabel.SiteId);
    Console.WriteLine("Enabled: " + sensitivityLabel.IsEnabled);
    Console.WriteLine("Removed: " + sensitivityLabel.IsRemoved);
    Console.WriteLine("Assignment method: " + sensitivityLabel.AssignmentMethodType);

    foreach (var contentMarkType in sensitivityLabel.ContentMarkTypes)
    {
        Console.WriteLine("Content marking: " + contentMarkType);
    }
}

إضافة تسمية حساسية مع علامة محتوى

استخدم ISensitivityLabelCollection.Add مع معرف التسمية، ومعرف الموقع، وحالة التمكين، وطريقة التعيين. بعد أن تُعيد الطريقة كائن ISensitivityLabel جديد، أضف قيم العلامات المطلوبة عبر ISensitivityLabel.ContentMarkTypes.

المثال التالي يضيف تسمية مختارة يدويًا مرتبطة بعلامتي تذييل وعلامة مائية، ثم يحفظ النتيجة كملف PPTX:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;

var labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
var siteIdentifier = Guid.Parse("{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}");
var isEnabled = true;
var assignmentMethod = SensitivityLabelAssignmentType.Privileged;

var sensitivityLabel = sensitivityLabels.Add(
    labelIdentifier,
    siteIdentifier,
    isEnabled,
    assignmentMethod);

sensitivityLabel.ContentMarkTypes.Add(SensitivityLabelContentType.Footer);
sensitivityLabel.ContentMarkTypes.Add(SensitivityLabelContentType.Watermark);

presentation.Save("presentation_with_label.pptx", SaveFormat.Pptx);

تحديث تسمية حساسية

خصائص ISensitivityLabel قابلة للقراءة/الكتابة، باستثناء أن المجموعة التي تُرجعها ISensitivityLabel.ContentMarkTypes تُعدّل عبر عمليات القائمة الخاصة بها. بعد العثور على التسمية المطلوبة، يمكنك تحديث معرفها، ومعرف الموقع، وحالة التمكين، وطريقة التعيين، وحالة الإزالة، وأنواع علامات المحتوى. احفظ العرض التقديمي لتثبيت التغييرات.

المثال التالي يحدّث حالة التمكين وطريقة التعيين للتسمية الأولى:

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;

if (sensitivityLabels.Count > 0)
{
    var sensitivityLabel = sensitivityLabels[0];
    sensitivityLabel.IsEnabled = true;
    sensitivityLabel.AssignmentMethodType = SensitivityLabelAssignmentType.Privileged;
}

presentation.Save("presentation_with_updated_label.pptx", SaveFormat.Pptx);

وضع علامة على تسمية الحساسية كمزالة

للحفاظ على حقيقة إزالة التسمية، اعثر على التسمية واضبط ISensitivityLabel.IsRemoved إلى true. هذا يحتفظ بمدخل التسمية مع تسجيل حالتها كمنزالة. إذا كنت تحتاج إلى حذف مدخل من المجموعة الحديثة، استخدم ISensitivityLabelCollection.RemoveAt؛ واستخدم ISensitivityLabelCollection.Clear لحذف جميع المدخلات.

المثال التالي يضع علامة على تسمية محددة كمزالة ويحفظ العرض المحدث:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation.pptx");
var sensitivityLabels = presentation.SensitivityLabels;
var targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";

foreach (var sensitivityLabel in sensitivityLabels)
{
    var isTargetLabel = string.Equals(
        sensitivityLabel.Id,
        targetLabelIdentifier,
        StringComparison.OrdinalIgnoreCase);

    if (isTargetLabel)
    {
        sensitivityLabel.IsRemoved = true;
        break;
    }
}

presentation.Save("presentation_with_removed_label.pptx", SaveFormat.Pptx);

قراءة وترحيل تسميات الحساسية القديمة الخاصة بـ MIP

يمكن لسير العمل القائم على MIP القديم تخزين بيانات تعريف تسميات الحساسية في خصائص مستند مخصصة بدلًا من مجموعة التسميات الحديثة. اقرأ تلك البيانات باستخدام IDocumentProperties.GetSensitivityLabels. الطريقة تحلل الخصائص المخصصة القديمة وتُرجع مصفوفة من كائنات ISensitivityLabel.

لترحيل البيانات الوصفية، أضف كل تسمية مُسترجعة إلى ISensitivityLabelCollection الحديثة عبر ISensitivityLabelCollection.Add. نظرًا لأن إضافة معرف تسمية مكرر يثير استثناء، يتحقق المثال من المجموعة الوجهة قبل نسخ كل تسمية. يمكنك إضافة مزيد من التحقق للتأكد من أن كل تسمية قديمة لا تزال موجودة في سياسة Purview الحالية.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("presentation_with_legacy_labels.pptx");
var legacySensitivityLabels = presentation.DocumentProperties.GetSensitivityLabels();
var modernSensitivityLabels = presentation.SensitivityLabels;

foreach (var legacySensitivityLabel in legacySensitivityLabels)
{
    var labelAlreadyExists = false;

    foreach (var modernSensitivityLabel in modernSensitivityLabels)
    {
        labelAlreadyExists = string.Equals(
            modernSensitivityLabel.Id,
            legacySensitivityLabel.Id,
            StringComparison.OrdinalIgnoreCase);

        if (labelAlreadyExists)
        {
            break;
        }
    }

    if (!labelAlreadyExists)
    {
        modernSensitivityLabels.Add(legacySensitivityLabel);
    }
}

presentation.Save("presentation_with_modern_labels.pptx", SaveFormat.Pptx);

الترحيل ينسخ كائنات التسميات المُحللة إلى المجموعة الحديثة. لا يتطلب مسح جميع خصائص المستند المخصصة، لذا تظل البيانات الوصفية غير المتعلقة بالمستند سليمة. استخدم IPresentation.Save مع SaveFormat.Pptx لكتابة بيانات تعريف التسميات الحديثة إلى ملف PPTX.

الأسئلة الشائعة

هل إنشاء نوع علامة محتوى يضيف رأسًا أو تذييلًا أو علامة مائية مرئية على الشرائح؟

لا. القيم المضافة عبر ISensitivityLabel.ContentMarkTypes تصف العلامات المرتبطة بتسمية الحساسية. لا تُنشئ نصًا أو أشكالًا مرئية في العرض التقديمي. أضف محتوى الشريحة المقابل بشكل منفصل إذا كان سير عملك يتطلب عرض تلك العلامات.

ما الفرق بين وضع علامة على التسمية كمزالة وحذفها من المجموعة؟

ضبط ISensitivityLabel.IsRemoved إلى true يبقي مدخل التسمية ويسجل حالتها كمنزالة. استدعاء ISensitivityLabelCollection.RemoveAt يحذف المدخل من المجموعة الحديثة. اختر العملية التي تتوافق مع متطلبات مؤسستك للاحتفاظ بالبيانات الوصفية.

هل يمكن للعرض التقديمي احتواء كل من بيانات MIP القديمة وتسميات الحساسية الحديثة؟

نعم. يمكن أن تبقى التسميات القديمة في خصائص المستند المخصصة بينما تكون التسميات الحديثة متوفرة عبر Presentation.SensitivityLabels. استخدم IDocumentProperties.GetSensitivityLabels لقراءة البيانات القديمة وترحيل التسميات الصالحة فقط التي لم توجد مسبقًا في المجموعة الحديثة.

ماذا يحدث عندما يُضاف معرف تسمية مكرر أكثر من مرة؟

ISensitivityLabelCollection.Add يرمي ArgumentException عندما تحتوي المجموعة مسبقًا على تسمية بنفس المعرف. تحقق من قيم ISensitivityLabel.Id الموجودة قبل الإضافة أو الترحيل.

ما هو تنسيق الإخراج الذي يُجب استخدامها للحفاظ على تسميات الحساسية المحدثة؟

احفظ العرض التقديمي كملف PPTX باستدعاء IPresentation.Save مع SaveFormat.Pptx، كما هو موضح في الأمثلة أعلاه.