Sdílet prostřednictvím


Microsoft Information Protection SDK – Souhlas

Třída mip::Consent výčtu implementuje snadno použitelný přístup, který vývojářům aplikací umožňuje poskytovat vlastní prostředí pro vyjádření souhlasu na základě koncového bodu, ke kterému přistupuje sada SDK. Oznámení může uživatele informovat o datech, která se budou shromažďovat, jak získat odebraná data, nebo jakékoli další informace, které vyžadují zásady dodržování právních předpisů nebo dodržování předpisů. Jakmile uživatel udělí souhlas, může aplikace pokračovat. Tento delegát se volá pouze při pokusu o přístup k služba AD RMS (Active Directory Rights Management Services) (AD RMS). Při přístupu ke cloudovým službám se tato funkce nevolá. Pokud vaše aplikace nebude podporovat SLUŽBU AD RMS, můžete implementovat delegáta, který vždy vrátí Consent.AcceptAlways.

Implementace

Souhlas se implementuje rozšířením mip::Consent základní třídy a implementací GetUserConsent pro vrácení jedné z hodnot výčtu mip::Consent .

Objekt odvozený z mip::Consent je předán do konstruktoru mip::FileProfile::Settings nebo mip::ProtectionProfile::Settings konstruktoru.

Když uživatel provede operaci, která by vyžadovala poskytnutí souhlasu, sada SDK volá metodu GetUserConsent a předává cílovou adresu URL jako parametr. Je to v této metodě, kdy by jedna implementovala zobrazování potřebných informací uživateli, což jim umožní rozhodnout, zda nebo ne souhlasí s používáním služby.

  • AcceptAlways: Consent and remember the decision.
  • Přijmout: Souhlas jednou.
  • Odmítnout: Neschovávejte souhlas.

Když sada SDK požádá o souhlas uživatele s touto metodou, klientská aplikace by měla uživateli předložit adresu URL. Klientské aplikace by měly poskytnout některé prostředky pro získání souhlasu uživatele a vrátit odpovídající výčet souhlasu, který odpovídá rozhodnutí uživatele.

Ukázková implementace

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

};

Pokud sada SDK vyžaduje souhlas, GetUserConsent volá se metoda sadou SDK a adresa URL předaná jako parametr. V následující ukázce se uživateli zobrazí oznámení, že se sada SDK připojí k zadané adrese URL a poskytne uživateli možnost na příkazovém řádku. Na základě volby uživatele uživatel přijme nebo odmítne souhlas a předá se sadě SDK. Pokud uživatel odmítne souhlas, aplikace vyvolá výjimku a do služby ochrany se neprodá žádné volání.

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;
  }  
}

Při testování nebo vývoji nebo při použití pouze cloudových služeb je možné implementovat základní ConsentDelegate .

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

V produkčním kódu však může být nutné, aby uživatel byl předložen s výběrem souhlasu v závislosti na regionálních nebo obchodních požadavcích a nařízeních.