Freigeben über


Republizieren (C++)

Diese Übersicht konzentriert sich auf die Erneute Veröffentlichung im MIP SDK. Eine erneute Veröffentlichung ist erforderlich, wenn eine Anwendung es einem Benutzer ermöglichen muss, die Datei zu bearbeiten, aber die ursprünglichen Veröffentlichungslizenzinformationen über Besitzer, Rechte, Inhaltsschlüssel usw. beibehalten müssen.

Das Muster könnte etwa so aussehen:

  • Ein Benutzer öffnet ein geschütztes Dokument zur Bearbeitung.
  • Der Benutzer darf die Datei nur bearbeiten, wenn er über die entsprechenden Rechte verfügt.
  • Der Benutzer bearbeitet das Dokument und speichert es anschließend.

Der Pseudocode des MIP SDK zur Erfüllung dieser Aufgabe könnte wie folgt aussehen:

  • Erstellen Sie einen mip::FileHandler, der auf die Zieldatei zeigt.
  • Speichern Sie die mip::ProtectionHandler, die von der mip::FileHandler-Methode von GetProtection() ausgesetzt sind.
  • Prüfen Sie, ob der Benutzer Bearbeitungsrechte hat, indem Sie die Methode AccessCheck() aufrufen.
  • Verwenden Sie mip::FileHandlers GetDecryptedTemporaryFileAsync() oder GetDecryptedTemporaryStreamAsync(), um eine vorläufige entschlüsselte Ausgabe zu erhalten.
  • Bearbeiten Sie die temporäre Datei oder den Streaminhalt, und speichern Sie sie.
  • Erstellen Sie eine neue mip::FileHandler-Instanz, die auf die temporäre Datei zeigt, und verwenden Sie die SetProtection()-Methode, wobei Sie die gespeicherten mip::ProtectionHandler als Parameter angeben.
  • Führen Sie für die Änderung einen Commit aus.

Mithilfe der mip::ProtectionHandler ursprünglichen Datei werden der Besitzer, die Inhalts-ID und der Inhaltsschlüssel im bearbeiteten Dokument verwaltet. Für dieses Szenario der Neuveröffentlichung muss die Anwendung einen Verweis auf das Original mip::ProtectionHandler beibehalten.

Implementierung

Wie bereits erwähnt, verfügt die Klasse mip::FileHandler über Methoden zum Lesen, Schreiben und Entfernen von Etiketten und Schutzinformationen. Die vollständige Liste der unterstützten Vorgänge finden Sie in der Referenz für mip::FileHandler.

Dieses Szenario verwendet die folgenden Methoden von mip::FileHandler:

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

Das Szenario nutzt auch mip::ProtectionHandler, was die Funktionen zum Ver- und Entschlüsseln geschützter Streams und Puffer, zur Durchführung von Zugriffsprüfungen, zum Abrufen der Veröffentlichungslizenz und zum Abrufen von Attributen aus den geschützten Informationen zur Verfügung stellt. Die Methode AccessCheck() wird verwendet, um zu überprüfen, ob der Benutzer das Recht hat, die Datei zu bearbeiten.

Um dieses Reprotection-Szenario erfolgreich abzuschließen, überprüfen Sie die Schnellstarts unter "Nächste Schritte" und stellen Sie sicher, dass die Anwendung erstellt wird und erfolgreich Etiketten auflisten kann.

Erstellen eines Protection Handlers aus der Datei und Entschlüsseln der Datei

mip::ProtectionHandler stellt die Funktionen zum Ver- und Entschlüsseln geschützter Streams und Puffer, zur Durchführung von Zugriffsprüfungen, zum Abrufen der Veröffentlichungslizenz und zum Abrufen von Attributen aus den geschützten Informationen zur Verfügung. mip::ProtectionHandler Objekte werden erstellt, indem entweder ein ProtectionDescriptor oder eine serialisierte Veröffentlichungslizenz bereitgestellt wird. Für diesen Anwendungsfall wird die Veröffentlichungslizenz beim Entschlüsseln bereits geschützter Inhalte oder beim Schützen von Inhalten verwendet, in denen die Lizenz bereits erstellt wurde.

mip::FileHandler macht eine Methode mit dem Namen GetProtection() verfügbar, die aus der Datei abgerufen wird mip::ProtectionHandler , die der mip::FileHandlerDatei zugeordnet ist. Sobald das mip::ProtectionHandler-Objekt abgerufen ist, kann es dazu verwendet werden, die Zugriffsrechte des Benutzers für die Datei zu überprüfen, die Datei zu entschlüsseln und sie später zu verschlüsseln, sobald sie bearbeitet wird.

mip::ProtectionHandlers AccessCheck() wird verwendet, um zu überprüfen, ob der Benutzer ein bestimmtes Recht auf die Datei hat und gibt je nach Ergebnis eine boolesche Antwort zurück. Um z. B. zu überprüfen, ob der Benutzer Bearbeitungsrechte hat, rufen Sie die Methode mit dem Wert "EDIT" auf. Wenn das Ergebnis wahr ist, erlauben Sie dem Benutzer, die Datei zu bearbeiten. Sobald das Recht EDIT verifiziert ist, verwenden Sie mip::FileHandler's GetDecryptedTemporaryFileAsync(), um die vorübergehend entschlüsselte Datei abzurufen.

Weitere Informationen finden Sie unter Einschränken des Zugriffs auf Inhalte mithilfe von Vertraulichkeitsbezeichnungen zum Anwenden der Verschlüsselung.

Wichtig

Zugangskontrollen und deren Erzwingung sind allein Sache des Anwendungsentwicklers. Ein Benutzer mit VIEW-Rechten kann die geschützten Informationen entschlüsseln. Es liegt an der Anwendung, die Gruppe von Rechten zu überprüfen, die der Benutzer gewährt hat, und diese Rechte über Informationsschutzsteuerelemente durchzusetzen, z. B. kopieren, bearbeiten oder Screenshots erstellen. Werden die Schutzmaßnahmen nicht ordnungsgemäß durchgeführt, kann dies zur Preisgabe sensibler Informationen führen.

Speichern und veröffentlichen Sie die bearbeitete Datei durch Anwendung von Protection

Die Datei kann bearbeitet werden, nachdem die Datei entschlüsselt wurde. Sobald der Bearbeitungsvorgang abgeschlossen ist, können die Änderungen bestätigt werden. Erstellen Sie ein IFileHandler Objekt mithilfe der temporären Datei für die Verarbeitung der zugesicherten Datei. Die temporäre Datei kann dann mit dem IProtectionHandler-Objekt geschützt werden, das aus der ursprünglichen Datei abgerufen wurde.

Nächste Schritte