Udostępnij za pośrednictwem


Microsoft Information Protection SDK — zgoda

Klasa mip::Consent wyliczenia implementuje łatwe w użyciu podejście, które umożliwia deweloperom aplikacji zapewnienie niestandardowego środowiska zgody na podstawie punktu końcowego, do którego uzyskuje się dostęp za pomocą zestawu SDK. Powiadomienie może poinformować użytkownika o danych, które zostaną zebrane, jak pobrać dane usunięte lub inne informacje wymagane przez zasady prawa lub zgodności. Gdy użytkownik udzieli zgody, aplikacja będzie mogła kontynuować. Ten delegat jest wywoływany tylko podczas próby uzyskania dostępu do Usługi Active Directory Rights Management (AD RMS). Nie jest wywoływana podczas uzyskiwania dostępu do usług w chmurze. Jeśli aplikacja nie będzie obsługiwać usług AD RMS, możesz zaimplementować delegata, który zawsze zwraca wartość Consent.AcceptAlways.

Implementacja

Zgoda jest implementowana przez rozszerzenie klasy bazowej mip::Consent i implementację GetUserConsentmip::Consent w celu zwrócenia jednej z wartości wyliczenia.

Obiekt pochodzący z mip::Consent obiektu jest przekazywany do konstruktora mip::FileProfile::Settings lub mip::ProtectionProfile::Settings .

Gdy użytkownik wykonuje operację, która wymaga zgody, zestaw SDK wywołuje GetUserConsent metodę, przekazując docelowy adres URL jako parametr. Jest to metoda, w której można zaimplementować wyświetlanie niezbędnych informacji dla użytkownika, co pozwala im podjąć decyzję, czy wyrazi zgodę na korzystanie z usługi.

  • AcceptAlways: Wyrażanie zgody i zapamiętuje decyzję.
  • Zaakceptuj: zgoda raz.
  • Odrzuć: nie wyrażaj zgody.

Gdy zestaw SDK zażąda zgody użytkownika za pomocą tej metody, aplikacja kliencka powinna przedstawić użytkownikowi adres URL. Aplikacje klienckie powinny podać niektóre sposoby uzyskania zgody użytkownika i zwrócić odpowiednie wyliczenie zgody, które odpowiada decyzji użytkownika.

Przykładowa implementacja

class ConsentDelegateImpl final : public mip::ConsentDelegate {
public:
  ConsentDelegateImpl() = default;
  
  virtual mip::Consent GetUserConsent(const std::string& url) override;

};

Gdy zestaw SDK wymaga zgody, GetUserConsent metoda jest wywoływana przez zestaw SDK, a adres URL przekazany jako parametr. W poniższym przykładzie użytkownik zostanie powiadomiony, że zestaw SDK połączy się z podanym adresem URL i udostępni użytkownikowi opcję w wierszu polecenia. Na podstawie wyboru przez użytkownika użytkownik akceptuje lub odrzuca zgodę i jest przekazywany do zestawu SDK. Jeśli użytkownik odmówi zgody, aplikacja zgłosi wyjątek i nie zostanie wykonane żadne wywołanie usługi ochrony.

Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
  //Print the consent URL, ask user to choose
  std::cout << "SDK will connect to: " << url << std::endl;

  std::cout << "1) Accept Always" << std::endl;
  std::cout << "2) Accept" << std::endl;
  std::cout << "3) Reject" << std::endl;
  std::cout << "Select an option: ";
  char input;
  std::cin >> input;

  switch (input)
  {
  case '1':
    return Consent::AcceptAlways;
    break;
  case '2':
    return Consent::Accept;
    break;
  case '3':
    return Consent::Reject;
    break;
  default:
    return Consent::Reject;
  }  
}

W przypadku testowania lub programowania lub używania tylko usług opartych na chmurze można zaimplementować podstawowe ConsentDelegate .

Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
  return Consent::AcceptAlways;
}

Jednak w kodzie produkcyjnym użytkownik może być zobowiązany do przedstawienia zgody, w zależności od wymagań regionalnych lub biznesowych i przepisów.