Переиздание

В этом обзоре основное внимание уделяется повторной публикации в пакете SDK для MIP. Повторная публикация требуется, если приложению необходимо разрешить пользователю изменять файл, но необходимо сохранить исходные сведения о лицензии публикации о владельцах, правах, ключе содержимого и т. д.

Шаблон может выглядеть примерно так:

  • Пользователь открывает защищенный документ для редактирования.
  • Пользователь должен изменять файл только в том случае, если у него есть соответствующие права.
  • Пользователь изменяет и сохраняет документ.

Псевдокод пакета SDK MIP для выполнения этой задачи может выглядеть следующим образом:

  • Создайте объект, указывающий mip::FileHandler на целевой файл.
  • Сохраните mip::ProtectionHandler, предоставленный методом mip::FileHandler из GetProtection().
  • Убедитесь, что у пользователя есть права EDIT , вызывая AccessCheck() метод.
  • Используйте mip::FileHandler"s GetDecryptedTemporaryFileAsync() " или GetDecryptedTemporaryStreamAsync() для получения временных расшифрованных выходных данных.
  • Измените временный файл или содержимое потока и сохраните его.
  • Создайте новый mip::FileHandler экземпляр, указывающий на временный файл и используйте SetProtection() метод, предоставляя сохраненный mip::ProtectionHandler в качестве параметра.
  • Зафиксируйте изменения.

В отредактированном документе сохраняются данные владельца, идентификатор содержимого и ключ содержимого, используя mip::ProtectionHandler из исходного файла. Этот сценарий повторной публикации требует, чтобы приложение поддерживало ссылку на исходный mip::ProtectionHandler.

Внедрение

Как упоминалось ранее, mip::FileHandler класс предоставляет методы чтения, записи и удаления меток и сведений о защите. Полный список поддерживаемых операций см. в справочнике по mip::FileHandler.

В этом сценарии используются следующие методы mip::FileHandler:

  • GetProtection()
  • CommitAsync()
  • GetDecryptedTemporaryFileAsync()
  • SetProtection()

В сценарии также используются mip::ProtectionHandler функции, которые открывают возможности для шифрования и расшифровки защищенных потоков и буферов, выполнения проверок доступа, получения лицензии на публикацию и получения атрибутов из защищенной информации. Метод AccessCheck() будет использоваться для проверки того, что у пользователя есть права на изменение файла.

Чтобы успешно завершить этот сценарий повторной защиты, ознакомьтесь с кратким руководством в разделе "Дальнейшие действия" и убедитесь, что приложение создает и может успешно перечислять метки.

Создание обработчика защиты из файла и расшифровка файла

mip::ProtectionHandler предоставляет функции для шифрования и расшифровки защищенных потоков и буферов, выполнения проверок доступа, получения лицензии на публикацию и получения атрибутов из защищенной информации. mip::ProtectionHandler объекты создаются путем предоставления либо ProtectionDescriptor, либо сериализованной лицензии на публикацию. В этом случае лицензия на публикацию используется при расшифровке уже защищенного содержимого или при защите содержимого, в котором уже создана лицензия.

mip::FileHandler предоставляет метод с именем GetProtection(), который извлекает mip::ProtectionHandler из файла, связанного с mip::FileHandler. После получения объекта mip::ProtectionHandler, его можно использовать для проверки уровней доступа пользователя к файлу, расшифровки файла, а затем шифрования файла после его редактирования.

mip::ProtectionHandler AccessCheck() Используется для проверки того, что пользователь имеет определенное право на файл и возвращает логический ответ в зависимости от результата. Например, чтобы убедиться, что у пользователя есть права на изменение, вызовите метод, передавающий значение EDIT. Если результат имеет значение true, разрешить пользователю изменять файл. После проверки права EDIT используйте mip::FileHandlerGetDecryptedTemporaryFileAsync() для получения временного расшифрованного файла.

Дополнительные сведения см. в разделе "Ограничение доступа к содержимому" с помощью меток конфиденциальности для применения шифрования.

Внимание

Проверки доступа и принудительное применение предназначены исключительно для разработчика приложения. Пользователь с правами VIEW может расшифровывать защищенные сведения. Это касается приложения, чтобы проверить набор прав, которым предоставляется пользователь, и применить эти права с помощью элементов управления защиты информации, таких как предотвращение копирования, редактирования или создания снимка экрана. Неспособность правильно реализовать средства управления защитой может привести к воздействию конфиденциальной информации.

Сохранение и публикация измененного файла путем применения защиты

Файл можно изменить после расшифровки файла. После завершения операции редактирования изменения можно зафиксировать. IFileHandler Создайте объект с помощью временного файла для обработки зафиксированного файла. Затем временный файл можно защитить с помощью IProtectionHandler объекта, полученного из исходного файла.

Повторная публикация в автономном режиме

Повторная публикация может происходить в автономном режиме, когда доступен кэш лицензий публикации. Если приложение ранее кэшировало шаблоны и данные лицензии публикации через автономную публикацию, рабочий процесс повторной публикации не требует активного подключения к службе Rights Management.

Это полезно в сценариях, где:

  • Приложение должно функционировать в периодически подключенных средах.
  • Крупные пакетные операции должны повторно публиковаться без вызовов службы для каждого документа.
  • Желательно улучшение производительности за счёт избежания вызовов служб.

Убедитесь, что автономная публикация включена и шаблоны кэшируются перед попыткой повторной публикации в автономном режиме. Дополнительные сведения о настройке см. в автономной публикации .

Следующие шаги