Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La mip::Consent
clase enum implementa un enfoque fácil de usar que permite a los desarrolladores de aplicaciones proporcionar una experiencia de consentimiento personalizada basada en el punto de conexión al que accede el SDK. La notificación puede informar a un usuario de los datos que se recopilarán, cómo quitar los datos o cualquier otra información que requiera la ley o las directivas de cumplimiento. Una vez que el usuario concede consentimiento, la aplicación puede continuar. Solo se llama a este delegado al intentar acceder a Active Directory Rights Management Services (AD RMS). No se invoca cuando se accede a los servicios en la nube. Si la aplicación no admite AD RMS, puede implementar un delegado que siempre devuelva Consent.AcceptAlways
.
Implementación
El consentimiento se implementa mediante la extensión de la mip::Consent
clase base y la implementación de GetUserConsent
para devolver uno de los valores del enumerado mip::Consent
.
El objeto derivado de mip::Consent
se pasa al constructor mip::FileProfile::Settings
o mip::ProtectionProfile::Settings
.
Cuando un usuario realiza una operación que requeriría proporcionar consentimiento, el SDK llama al GetUserConsent
método y pasa la dirección URL de destino como parámetro. Se encuentra en este método donde se implementaría la visualización de la información necesaria al usuario, lo que les permite tomar una decisión sobre si dan su consentimiento para usar el servicio.
Opciones de consentimiento
- AcceptAlways: consentir y recordar la decisión.
- Aceptar: consentimiento una vez.
- Rechazar: no dé su consentimiento.
Cuando el SDK solicita el consentimiento del usuario con este método, la aplicación cliente debe presentar la dirección URL al usuario. Las aplicaciones cliente deben proporcionar algunos medios para obtener el consentimiento del usuario y devolver la enumeración de consentimiento adecuada que corresponde a la decisión del usuario.
Ejemplo de implementación
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
Cuando el SDK requiere consentimiento, el método GetUserConsent
es llamado por el SDK, y la dirección URL se pasa como parámetro. En el ejemplo siguiente, se notifica al usuario que el SDK se conectará a esa dirección URL proporcionada y proporcionará al usuario una opción en la línea de comandos. En función de la elección por parte del usuario, el usuario acepta o rechaza el consentimiento y que se pasa al SDK. Si el usuario rechaza el consentimiento, la aplicación iniciará una excepción y no se realizará ninguna llamada al servicio de protecció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;
}
}
Cuando se realizan pruebas o desarrollo, o cuando se usan solo los servicios basados en la nube, se puede implementar un elemento básico ConsentDelegate
.
Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
return Consent::AcceptAlways;
}
Sin embargo, en el código de producción, es posible que el usuario tenga que presentar una opción para dar su consentimiento, en función de los requisitos y regulaciones regionales o empresariales.