Dela via


Microsoft Information Protection SDK – Medgivande

Uppräkningsklassen mip::Consent implementerar en lätthanterad metod som gör det möjligt för programutvecklare att tillhandahålla en anpassad medgivandeupplevelse baserat på slutpunkten som används av SDK:et. Meddelandet kan informera en användare om de data som samlas in, hur du tar bort data eller annan information som krävs enligt lag eller efterlevnadsprinciper. När användaren har gett sitt medgivande kan programmet fortsätta. Det här ombudet anropas endast när du försöker komma åt Active Directory Rights Management Services (AD RMS). Den anropas inte vid åtkomst till molntjänster. Om ditt program inte stöder AD RMS kan du implementera ett ombud som alltid returnerar Consent.AcceptAlways.

Implementering

Medgivande implementeras genom att utöka basklassen mip::Consent och implementera GetUserConsent för att returnera ett av uppräkningsvärdena mip::Consent .

Objektet som härleds från mip::Consent skickas till mip::FileProfile::Settings konstruktorn eller mip::ProtectionProfile::Settings konstruktorn.

När en användare utför en åtgärd som kräver att ge medgivande anropar GetUserConsent SDK-metoden och skickar in mål-URL:en som parameter. Det är i den här metoden där man skulle implementera visning av nödvändig information för användaren, så att de kan fatta ett beslut om huruvida de samtycker till att använda tjänsten eller inte.

  • AcceptAlways: Samtyck och kom ihåg beslutet.
  • Acceptera: Medgivande en gång.
  • Avvisa: Godkänn inte.

När SDK:et begär användarmedgivande med den här metoden ska klientprogrammet presentera URL:en för användaren. Klientprogram bör tillhandahålla ett sätt att erhålla användarens medgivande och returnera lämplig medgivandeuppräkning som motsvarar användarens beslut.

Exempelimplementering

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

};

När SDK:t kräver medgivande GetUserConsent anropas metoden av SDK:t och URL:en skickas som en parameter. I exemplet nedan meddelas användaren att SDK:et ansluter till den angivna URL:en och ger användaren ett alternativ på kommandoraden. Baserat på användarens val godkänner eller avvisar användaren medgivande och det skickas till SDK:t. Om användaren nekar till medgivande utlöser programmet ett undantag och inget anrop görs till skyddstjänsten.

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

När du testar eller utvecklar, eller när du bara använder de molnbaserade tjänsterna, kan en grundläggande ConsentDelegate implementeras.

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

I produktionskoden kan användaren dock behöva presenteras med ett val att samtycka, beroende på regionala eller affärsmässiga krav och föreskrifter.