Udostępnij przez


Ponowne publikowanie (C++)

To omówienie koncentruje się na funkcji Republishing w zestawie SDK MIP. Ponowne publikowanie jest wymagane, gdy aplikacja musi zezwolić użytkownikowi na edycję pliku, ale musi zachować oryginalne informacje o licencji publikowania dotyczące właściciela, praw, klucza zawartości itd.

Wzorzec może wyglądać mniej więcej tak:

  • Użytkownik otwiera chroniony dokument do edycji.
  • Użytkownik może edytować plik tylko wtedy, gdy ma odpowiednie prawa.
  • Użytkownik edytuje, a następnie zapisuje dokument.

Pseudokod zestawu MIP SDK do wykonania tego zadania może wyglądać następująco:

  • Utwórz obiekt mip::FileHandler wskazujący plik docelowy.
  • Przechowuj wartości mip::ProtectionHandler, które zostały uwidocznione przez metodę mip::FileHandler obiektu GetProtection().
  • Sprawdź, czy użytkownik ma uprawnienia EDIT , wywołując AccessCheck() metodę .
  • Użyj mip::FileHandlerGetDecryptedTemporaryFileAsync() albo GetDecryptedTemporaryStreamAsync(), aby uzyskać tymczasowe odszyfrowane dane wyjściowe.
  • Edytuj plik tymczasowy lub zawartość strumienia i zapisz.
  • Utwórz nowe mip::FileHandler wystąpienie wskazujące plik tymczasowy i użyj SetProtection() metody , podając parametr przechowywany mip::ProtectionHandler jako parametr.
  • Zatwierdź zmianę.

Przy użyciu mip::ProtectionHandler z oryginalnego pliku, właściciel, identyfikator zawartości i klucz zawartości zostają zachowane w edytowanym dokumencie. Ten scenariusz ponownego publikowania wymaga, aby aplikacja utrzymywała odwołanie do oryginalnego .mip::ProtectionHandler

Implementacja

Jak wspomniano wcześniej, mip::FileHandler klasa uwidacznia metody odczytywania, zapisywania i usuwania zarówno etykiet, jak i informacji o ochronie. Aby uzyskać pełną listę obsługiwanych operacji, zapoznaj się z dokumentacją programu mip::FileHandler.

W tym scenariuszu są używane następujące metody:mip::FileHandler

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

W scenariuszu używany jest również mip::ProtectionHandler, który uwidacznia funkcje szyfrowania i odszyfrowywania chronionych strumieni i buforów, przeprowadzania kontroli dostępu, uzyskiwania licencji publikowania oraz pobierania atrybutów z chronionych informacji. Metoda AccessCheck() będzie używana do sprawdzania, czy użytkownik ma uprawnienia do edytowania pliku.

Aby pomyślnie ukończyć ten scenariusz ponownego włączania ochrony, zapoznaj się z przewodnikami Szybki start w obszarze "Następne kroki" i upewnij się, że aplikacja kompiluje i może pomyślnie wyświetlić listę etykiet.

Tworzenie programu obsługi ochrony na podstawie pliku i odszyfrowywanie pliku

mip::ProtectionHandler Udostępnia funkcje szyfrowania i odszyfrowywania chronionych strumieni i buforów, przeprowadzania kontroli dostępu, uzyskiwania licencji publikowania oraz pobierania atrybutów z chronionych informacji. mip::ProtectionHandler obiekty są konstruowane przez podanie ProtectionDescriptor lub zserializowanej licencji publikowania. W tym przypadku użycia licencja publikowania jest używana podczas odszyfrowywania już chronionej zawartości lub ochrony zawartości, w której licencja została już skonstruowana.

mip::FileHandler Uwidacznia metodę o nazwie GetProtection() , która pobiera mip::ProtectionHandler z pliku skojarzonego z elementem mip::FileHandler. Po pobraniu mip::ProtectionHandler obiektu można użyć go do sprawdzania poprawności poziomów dostępu użytkownika dla pliku, odszyfrowywania pliku i późniejszego szyfrowania pliku po jego edycji.

mip::ProtectionHandler AccessCheck() Element jest używany do sprawdzania, czy użytkownik ma określone prawo do pliku i zwraca odpowiedź logiczną w zależności od wyniku. Aby na przykład sprawdzić, czy użytkownik ma uprawnienia do edycji, wywołaj metodę przekazującą wartość "EDIT". Jeśli wynik ma wartość true, zezwól użytkownikowi na edycję pliku. Po zweryfikowaniu prawa EDIT, użyj elementu mip::FileHandler z GetDecryptedTemporaryFileAsync() w celu pobrania tymczasowego odszyfrowanego pliku.

Aby uzyskać więcej informacji, zobacz Ograniczanie dostępu do zawartości przy użyciu etykiet poufności w celu zastosowania szyfrowania.

Ważne

Kontrole dostępu i ich egzekwowanie należą wyłącznie do odpowiedzialności dewelopera aplikacji. Użytkownik z uprawnieniami VIEW może odszyfrować chronione informacje. Aplikacja musi zweryfikować zestaw praw, które otrzymuje użytkownik, oraz wymusić te prawa za pośrednictwem mechanizmów kontroli ochrony informacji, takich jak zapobieganie kopiowaniu, edytowaniu lub robieniu zrzutów ekranu. Nieprawidłowe wdrożenie mechanizmów kontroli ochrony może spowodować ujawnienie poufnych informacji.

Zapisz i opublikuj edytowany plik, stosując ochronę

Plik można edytować po odszyfrowaniu pliku. Po zakończeniu operacji edycji można zatwierdzać zmiany. IFileHandler Utwórz obiekt przy użyciu pliku tymczasowego do obsługi zatwierdzonego pliku. Plik tymczasowy można następnie chronić przy użyciu IProtectionHandler obiektu pobranego z oryginalnego pliku.

Następne kroki