Microsoft Information Protection SDK - Persetujuan
Kelas mip::Consent
enum menerapkan pendekatan yang mudah digunakan yang memungkinkan pengembang aplikasi untuk memberikan pengalaman persetujuan kustom berdasarkan titik akhir yang sedang diakses oleh SDK. Pemberitahuan dapat memberi tahu pengguna tentang data yang akan dikumpulkan, cara menghapus data, atau informasi lain yang diperlukan oleh kebijakan hukum atau kepatuhan. Setelah pengguna memberikan persetujuan, aplikasi dapat dilanjutkan. Delegasi ini hanya dipanggil saat mencoba mengakses Layanan Active Directory Rights Management (AD RMS). Ini tidak dipanggil saat mengakses layanan cloud. Jika aplikasi Anda tidak akan mendukung AD RMS, Anda dapat menerapkan delegasi yang selalu mengembalikan Consent.AcceptAlways
.
implementasi
Persetujuan diimplementasikan dengan memperluas mip::Consent
kelas dasar dan menerapkan GetUserConsent
untuk mengembalikan salah mip::Consent
satu nilai enum.
Objek yang berasal dari mip::Consent
diteruskan ke mip::FileProfile::Settings
konstruktor atau mip::ProtectionProfile::Settings
.
Saat pengguna melakukan operasi yang memerlukan persetujuan, SDK memanggil GetUserConsent
metode , meneruskan URL tujuan sebagai parameter . Ini dalam metode ini di mana seseorang akan menerapkan menampilkan informasi yang diperlukan kepada pengguna, memungkinkan mereka untuk membuat keputusan tentang apakah mereka menyetujui untuk menggunakan layanan atau tidak.
Opsi Persetujuan
- AcceptAlways: Menyetujui dan mengingat keputusan.
- Terima: Persetujuan sekali.
- Tolak: Jangan setujui.
Ketika SDK meminta persetujuan pengguna dengan metode ini, aplikasi klien harus menyajikan URL kepada pengguna. Aplikasi klien harus memberikan beberapa cara untuk mendapatkan persetujuan pengguna dan mengembalikan enum Persetujuan yang sesuai dengan keputusan pengguna.
Implementasi sampel
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
Ketika SDK memerlukan persetujuan, GetUserConsent
metode dipanggil oleh SDK, dan URL yang diteruskan sebagai parameter. Dalam sampel di bawah ini, pengguna diberi tahu bahwa SDK akan terhubung ke URL yang disediakan dan memberi pengguna opsi pada baris perintah. Berdasarkan pilihan oleh pengguna, pengguna menerima atau menolak persetujuan dan yang diteruskan ke SDK. Jika pengguna menolak untuk menyetujui, aplikasi akan memberikan pengecualian, dan tidak ada panggilan yang dilakukan ke layanan perlindungan.
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;
}
}
Saat dalam pengujian, atau pengembangan, atau saat hanya menggunakan layanan berbasis cloud, dasar ConsentDelegate
dapat diimplementasikan.
Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
return Consent::AcceptAlways;
}
Namun, dalam kode produksi, pengguna mungkin diminta untuk diberikan pilihan untuk menyetujui, tergantung pada persyaratan dan peraturan regional atau bisnis.