Quản lý Nhãn Nhạy Cảm trong Bản Trình Bày PowerPoint trên .NET

Overview

Microsoft Purview sensitivity labels giúp các tổ chức phân loại và quản lý tài liệu. Trong quá trình xử lý bản trình bày tự động, một ứng dụng có thể cần bảo tồn nhãn hiện có, áp dụng nhãn được lựa chọn bởi chính sách, cập nhật trạng thái của nó, hoặc di chuyển siêu dữ liệu nhãn được ghi bởi quy trình Microsoft Information Protection (MIP) cũ.

Aspose.Slides cung cấp siêu dữ liệu nhãn nhạy cảm hiện đại thông qua Presentation.SensitivityLabels. Thuộc tính này trả về một ISensitivityLabelCollection có thể được kiểm tra và sửa đổi trước khi lưu bản trình bày dưới dạng PPTX.

Understand Sensitivity Label Properties

Mỗi ISensitivityLabel chứa các siêu dữ liệu sau:

Property Purpose
ISensitivityLabel.Id Xác định nhãn nhạy cảm trong chính sách Purview.
ISensitivityLabel.SiteId Xác định site liên quan đến chính sách nhãn.
ISensitivityLabel.IsEnabled Cho biết nhãn có được bật hay không.
ISensitivityLabel.IsRemoved Cho biết nhãn đã bị xóa. Đặt thuộc tính này thành true khi trạng thái xóa phải được giữ trong siêu dữ liệu.
ISensitivityLabel.AssignmentMethodType Xác định nhãn được áp dụng tự động hay thông qua quyết định của người dùng.
ISensitivityLabel.ContentMarkTypes Liệt kê các loại đánh dấu nội dung liên quan đến nhãn.

Kiểu liệt kê SensitivityLabelAssignmentType mô tả cách nhãn được gán:

Kiểu liệt kê SensitivityLabelContentType xác định đánh dấu liên quan đến nhãn:

Value Meaning
SensitivityLabelContentType.None Nhãn được áp dụng mặc định hoặc tự động.
SensitivityLabelContentType.Header Đánh dấu nội dung tiêu đề được liên kết với nhãn.
SensitivityLabelContentType.Footer Đánh dấu nội dung chân trang được liên kết với nhãn.
SensitivityLabelContentType.Watermark Đánh dấu nội dung watermark được liên kết với nhãn.
SensitivityLabelContentType.Encryption Bảo vệ mã hoá được liên kết với nhãn.

Nhiều loại đánh dấu có thể được liên kết với một nhãn.

List Existing Sensitivity Labels

Đọc bộ sưu tập nhãn hiện đại từ Presentation.SensitivityLabels và duyệt qua nó. Ví dụ sau liệt kê mọi thuộc tính và đánh dấu nội dung được lưu cho mỗi nhãn:

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);
    }
}

Add a Sensitivity Label with Content Marking

Sử dụng ISensitivityLabelCollection.Add với định danh nhãn, định danh site, trạng thái bật và phương thức gán. Sau khi phương thức trả về ISensitivityLabel mới, thêm các giá trị đánh dấu bắt buộc qua ISensitivityLabel.ContentMarkTypes.

Ví dụ dưới đây thêm một nhãn được chọn thủ công có liên quan đến đánh dấu chân trang và watermark, sau đó lưu kết quả dưới dạng 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);

Update a Sensitivity Label

Các thuộc tính của ISensitivityLabel đều có thể đọc/ghi, ngoại trừ bộ sưu tập trả về bởi ISensitivityLabel.ContentMarkTypes được sửa đổi thông qua các thao tác danh sách của nó. Sau khi tìm được nhãn cần thiết, bạn có thể cập nhật định danh, định danh site, trạng thái bật, phương thức gán, trạng thái xóa và các loại đánh dấu nội dung. Lưu bản trình bày để lưu các thay đổi.

Ví dụ dưới đây cập nhật trạng thái bật và phương thức gán của nhãn đầu tiên:

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);

Mark a Sensitivity Label as Removed

Để bảo tồn thông tin một nhãn đã bị xóa, tìm nhãn đó và đặt ISensitivityLabel.IsRemoved thành true. Thao tác này giữ lại mục nhãn trong khi ghi lại trạng thái đã xóa. Nếu bạn muốn xóa mục khỏi bộ sưu tập hiện đại, hãy sử dụng ISensitivityLabelCollection.RemoveAt; dùng ISensitivityLabelCollection.Clear để xóa mọi mục.

Ví dụ dưới đây đánh dấu một nhãn cụ thể là đã xóa và lưu bản trình bày đã cập nhật:

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);

Read and Migrate Legacy MIP Sensitivity Labels

Các quy trình dựa trên MIP cũ có thể lưu siêu dữ liệu nhãn nhạy cảm trong thuộc tính tài liệu tùy chỉnh thay vì bộ sưu tập nhãn hiện đại. Đọc siêu dữ liệu đó bằng IDocumentProperties.GetSensitivityLabels. Phương thức này phân tích các thuộc tính tùy chỉnh cũ và trả về một mảng các đối tượng ISensitivityLabel.

Để di chuyển siêu dữ liệu, thêm mỗi nhãn trả về vào ISensitivityLabelCollection hiện đại thông qua ISensitivityLabelCollection.Add. Vì việc thêm một định danh nhãn trùng lặp sẽ gây ra ngoại lệ, ví dụ kiểm tra bộ sưu tập đích trước khi sao chép mỗi nhãn. Bạn có thể thực hiện kiểm tra bổ sung để xác nhận mỗi nhãn legacy vẫn tồn tại trong chính sách Purview hiện tại.

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);

Quá trình di chuyển sao chép các đối tượng nhãn đã phân tích vào bộ sưu tập hiện đại. Nó không yêu cầu xóa tất cả các thuộc tính tài liệu tùy chỉnh, vì vậy các siêu dữ liệu tài liệu không liên quan vẫn được giữ nguyên. Sử dụng IPresentation.Save với SaveFormat.Pptx để ghi siêu dữ liệu nhãn hiện đại ra tệp PPTX.

FAQ

Thêm một loại đánh dấu nội dung có tạo ra tiêu đề, chân trang hoặc watermark hiển thị trên slide không?

Không. Các giá trị được thêm qua ISensitivityLabel.ContentMarkTypes mô tả các đánh dấu liên quan đến nhãn nhạy cảm. Chúng không tạo ra văn bản hay hình dạng hiển thị trong bản trình bày. Hãy thêm nội dung slide tương ứng riêng biệt nếu quy trình của bạn cần hiển thị các đánh dấu này.

Sự khác nhau giữa việc đánh dấu một nhãn là đã xóa và xóa nó khỏi bộ sưu tập là gì?

Đặt ISensitivityLabel.IsRemoved thành true giữ lại mục nhãn và ghi lại trạng thái đã xóa. Gọi ISensitivityLabelCollection.RemoveAt sẽ xóa mục khỏi bộ sưu tập hiện đại. Hãy chọn thao tác phù hợp với yêu cầu lưu trữ siêu dữ liệu của tổ chức bạn.

Một bản trình bày có thể chứa cả siêu dữ liệu MIP legacy và nhãn nhạy cảm hiện đại không?

Có. Các nhãn legacy có thể còn lại trong thuộc tính tài liệu tùy chỉnh trong khi các nhãn hiện đại được truy cập qua Presentation.SensitivityLabels. Sử dụng IDocumentProperties.GetSensitivityLabels để đọc siêu dữ liệu legacy và chỉ di chuyển những nhãn hợp lệ chưa có trong bộ sưu tập hiện đại.

Điều gì xảy ra khi một nhãn có cùng định danh được thêm nhiều lần?

ISensitivityLabelCollection.Add ném ArgumentException khi bộ sưu tập đã chứa một nhãn có cùng định danh. Kiểm tra các giá trị ISensitivityLabel.Id hiện có trước khi thêm hoặc di chuyển nhãn.

Định dạng đầu ra nào nên dùng để bảo tồn các nhãn nhạy cảm đã cập nhật?

Lưu bản trình bày dưới dạng PPTX bằng cách gọi IPresentation.Save với SaveFormat.Pptx, như đã minh họa trong các ví dụ ở trên.