Bagikan melalui


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.

  • 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

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

};

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.