Uso de la caché de credenciales
Media Foundation proporciona una implementación predeterminada de la interfaz IMFNetCredentialCache . Una aplicación que implementa la interfaz IMFNetCredentialManager puede usar el objeto de caché de credenciales predeterminado para almacenar las credenciales del usuario.
Para crear el objeto de caché de credenciales predeterminado, llame a la función MFCreateCredentialCache .
HRESULT hr = S_OK;
IMFNetCredentialCache *pCredentialCache = NULL;
hr = MFCreateCredentialCache(&pCredentialCache);
Una vez creada la memoria caché de credenciales, la aplicación puede usar los métodos siguientes para obtener un objeto de credencial, establecer las credenciales de usuario y especificar las opciones de almacenamiento en caché.
Para obtener el objeto de credencial de una dirección URL, llame a IMFNetCredentialCache::GetCredential.
hr = pCredentialCache-> GetCredential( pszUrl, pszRealm, dwAuthenticationFlags, &pCredential, &dwRequirementsFlags);
Si las credenciales de la dirección URL especificada no existen en la memoria caché de credenciales, GetCredential crea un nuevo objeto de credencial con valores vacíos de nombre de usuario y contraseña.
Para establecer el nombre de usuario y la contraseña en el objeto de credencial, llame a IMFNetCredential::SetUser y IMFNetCredential::SetPassword.
Para establecer las opciones de almacenamiento en caché en el objeto de credencial, llame a IMFNetCredentialCache::SetUserOptions.
hr = pCredentialCache-> SetUserOptions( pCredentialCache, MFNET_CREDENTIAL_SAVE);
Los valores de parámetro dwOptionsFlags se definen en la enumeración MFNetCredentialOptions . Para guardar las credenciales de usuario de una dirección URL en un almacenamiento persistente, establezca la marca MFNET_CREDENTIAL_SAVE. Si la llamada a SetUserOptions se completa correctamente, la llamada posterior a GetCredential busca las credenciales en el almacenamiento persistente. Si se encuentra una coincidencia, este método devuelve un puntero al objeto de credencial que contiene la información.
De forma predeterminada, las credenciales de usuario enviadas a través de la red se cifran. Para cambiar esto a texto no cifrado, establezca la marca MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT.
Para quitar información del Registro, llame a GetCredential para obtener el objeto de credencial y, a continuación, llame a SetUserOption y establezca dwOptionsFlags en MFNET_CREDENTIAL_DONT_CACHE.
Temas relacionados