Microsoft Information Protection SDK — zgoda

Klasa wyliczana implementuje łatwe w użyciu podejście, które pozwala deweloperom aplikacji na dostarczenie niestandardowego środowiska zgody opartego na punkcie końcowym, do którego uzyskuje dostęp zestaw mip::Consent SDK. Powiadomienie może informować użytkownika o zbieranych danych, o sposobu ich usunięcia lub o wszelkich innych informacjach wymaganych przez prawo lub zasady zgodności. Gdy użytkownik udziela zgody, aplikacja może być kontynuowana.

Implementacja

Zgoda jest zaimplementowana przez rozszerzenie klasy mip::Consent podstawowej i zaimplementowanie GetUserConsent zwracania jednej z wartości mip::Consent wyli roku.

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

Gdy użytkownik wykonuje operację, która wymaga wyrażenia zgody, zestaw SDK wywołuje metodę, podając docelowy adres GetUserConsent URL jako parametr. Ta metoda polega na zaimplementowaniu wyświetlania użytkownikowi niezbędnych informacji, co pozwoli mu podjąć decyzję, czy wyraża on zgodę na korzystanie z usługi.

  • AcceptAlway:Zgoda i pamiętanie decyzji.
  • Zaakceptuj:Zgoda raz.
  • Odrzuć:nie wyrażaj zgody.

Gdy zestaw SDK żąda zgody użytkownika przy użyciu tej metody, aplikacja klienkowa powinna przedstawić użytkownikowi adres URL. Aplikacje klienckie powinny zapewniać sposób uzyskiwania zgody użytkownika i zwracać odpowiednie wyli roku zgody odpowiadające 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, metoda jest wywoływana przez zestaw SDK i adres GetUserConsent URL przekazany jako parametr. GetUserConsent W poniższym przykładzie użytkownik jest powiadamiany, że zestaw SDK połączy się z tym dostarczonym adresem URL i udostępnia użytkownikowi opcję w wierszu polecenia. Zależnie od wyboru wybranego przez użytkownika użytkownik zaakceptuje lub odrzuci zgodę, która jest przekazywana do zestawu SDK. Jeśli użytkownik odmówi wyrażenia zgody, aplikacja zgłasza wyjątek i żadne wywołanie nie jest wykonane w usłudze 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;
  }  
}

Na potrzeby testowania i tworzenia aplikacji można ConsentDelegate zaimplementować prostą, która wygląda następująco:

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

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