Condividi tramite


Uso della cache delle credenziali

Media Foundation fornisce un'implementazione predefinita dell'interfaccia IMFNetCredentialCache . Un'applicazione che implementa l'interfaccia FMNetCredentialManager può usare l'oggetto cache delle credenziali predefinito per archiviare le credenziali dell'utente.

Per creare l'oggetto cache delle credenziali predefinito, chiamare la funzione MFCreateCredentialCache .

HRESULT hr = S_OK;
IMFNetCredentialCache *pCredentialCache = NULL;
hr = MFCreateCredentialCache(&pCredentialCache);

Dopo aver creato la cache delle credenziali, l'applicazione può usare i metodi seguenti per ottenere un oggetto credenziale, impostare le credenziali utente e specificare le opzioni di memorizzazione nella cache.

  • Per ottenere l'oggetto credenziale per un URL, chiamare FMNetCredentialCache::GetCredential.

    hr = pCredentialCache-> GetCredential(
            pszUrl,
            pszRealm,
            dwAuthenticationFlags,
            &pCredential,
            &dwRequirementsFlags);
    

    Se le credenziali per l'URL specificato non esistono nella cache delle credenziali, GetCredential crea un nuovo oggetto credenziale con nomi utente e valori password vuoti.

  • Per impostare il nome utente e la password nell'oggetto credenziali, chiamare FMNetCredential::SetUser e FMNetCredential::SetPassword.

  • Per impostare le opzioni di memorizzazione nella cache nell'oggetto credenziali, chiamare FMNetCredentialCache::SetUserOptions.

    hr = pCredentialCache-> SetUserOptions( 
            pCredentialCache,
            MFNET_CREDENTIAL_SAVE);
    

    I valori dei parametri dwOptionsFlags sono definiti nell'enumerazione MFNetCredentialOptions . Per salvare le credenziali utente per un URL in un archivio permanente, impostare il flag di MFNET_CREDENTIAL_SAVE. Se la chiamata SetUserOptions viene completata correttamente, la chiamata successiva a GetCredential cerca le credenziali nell'archiviazione persistente. Se viene trovata una corrispondenza, questo metodo restituisce un puntatore all'oggetto credenziale contenente le informazioni.

    Per impostazione predefinita, le credenziali utente inviate tramite la rete vengono crittografate. Per cancellare il testo, impostare il flag di MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT.

    Per rimuovere informazioni dal Registro di sistema, chiamare GetCredential per ottenere l'oggetto credenziale e quindi chiamare SetUserOptionsFlags su MFNET_CREDENTIAL_DONT_CACHE.

Autenticazione dell'origine di rete