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ę GetUserConsent
mip::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.
Opcje zgody
- 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
consent_delegate_impl.h
class ConsentDelegateImpl final : public mip::ConsentDelegate {
public:
ConsentDelegateImpl() = default;
virtual mip::Consent GetUserConsent(const std::string& url) override;
};
consent_delegate_impl.cpp
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.