Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A classe de enumeração mip::Consent implementa uma abordagem fácil de usar que permite que os desenvolvedores de aplicativos forneçam uma experiência de consentimento personalizada com base no ponto de extremidade que está sendo acessado pelo SDK. A notificação pode informar um usuário sobre os dados que serão coletados, como remover os dados ou qualquer outra informação exigida por políticas de conformidade ou lei. Depois que o usuário conceder consentimento, o aplicativo poderá continuar. Esse delegado é chamado somente ao tentar acessar o AD RMS (Active Directory Rights Management Services). Ele não é chamado ao acessar serviços de nuvem. Se o aplicativo não der suporte ao AD RMS, você poderá implementar um delegado que sempre retorna Consent.AcceptAlways.
Implementação
O consentimento é implementado estendendo a mip::Consent classe base e implementando GetUserConsent para retornar um dos mip::Consent valores de enumeração.
O objeto derivado de mip::Consent é transmitido ao construtor mip::FileProfile::Settings ou mip::ProtectionProfile::Settings.
Quando um usuário executa uma operação que exigiria fornecer consentimento, o SDK chama o GetUserConsent método, passando a URL de destino como o parâmetro. É nesse método que se implementa a exibição das informações necessárias para o usuário, permitindo que ele tome uma decisão sobre se ele consente ou não em usar o serviço.
Opções de consentimento
- AcceptAlways: Consenta e lembre-se da decisão.
- Aceitar: consentir uma vez.
- Rejeitar: não consentir.
Quando o SDK solicita consentimento do usuário com esse método, o aplicativo cliente deve apresentar a URL ao usuário. Os aplicativos cliente devem fornecer alguma forma de obter o consentimento do usuário e retornar a enumeração de consentimento apropriada que corresponde à decisão do usuário.
Exemplo de implementação
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
Quando o SDK requer consentimento, o GetUserConsent método é chamado pelo SDK e a URL passada como um parâmetro. No exemplo abaixo, o usuário é notificado de que o SDK se conectará à URL fornecida e fornecerá ao usuário uma opção na linha de comando. Com base na escolha do usuário, o usuário aceita ou rejeita o consentimento e isso é passado para o SDK. Se o usuário se recusar a consentir, o aplicativo gerará uma exceção e nenhuma chamada será feita ao serviço de proteção.
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;
}
}
Quando estiver em teste, ou desenvolvimento, ou ao usar apenas os serviços baseados em nuvem, um elemento básico ConsentDelegate pode ser implementado.
Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
return Consent::AcceptAlways;
}
No entanto, no código de produção, o usuário pode ser obrigado a ter a opção de consentir, dependendo dos requisitos e regulamentos regionais ou comerciais.