Udostępnij przez


Korzystanie z pamięci podręcznej poświadczeń

Program Media Foundation udostępnia domyślną implementację interfejsu IMFNetCredentialCache. Aplikacja, która implementuje interfejs IMFNetCredentialManager, może używać domyślnego obiektu pamięci podręcznej poświadczeń do przechowywania poświadczeń użytkownika.

Aby utworzyć domyślny obiekt pamięci podręcznej poświadczeń, wywołaj funkcję MFCreateCredentialCache.

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

Po utworzeniu pamięci podręcznej poświadczeń aplikacja może użyć następujących metod, aby uzyskać obiekt poświadczeń, ustawić poświadczenia użytkownika i określić opcje buforowania.

  • Aby uzyskać obiekt poświadczeń dla adresu URL, wywołaj IMFNetCredentialCache::GetCredential.

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

    Jeśli poświadczenia dla określonego adresu URL nie istnieją w pamięci podręcznej poświadczeń, GetCredential tworzy nowy obiekt poświadczeń z pustymi wartościami nazwy użytkownika i hasła.

  • Aby ustawić nazwę użytkownika i hasło w obiekcie poświadczeń, wywołaj IMFNetCredential::SetUser i IMFNetCredential::SetPassword.

  • Aby ustawić opcje buforowania w obiekcie poświadczeń, wywołaj metodę IMFNetCredentialCache::SetUserOptions.

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

    Wartości parametrów dwOptionsFlags są zdefiniowane w wyliczeniu MFNetCredentialOptions. Aby zapisać poświadczenia użytkownika dla adresu URL w magazynie trwałym, ustaw flagę MFNET_CREDENTIAL_SAVE. Jeśli wywołanie SetUserOptions zakończy się pomyślnie, kolejne wywołanie GetCredential wyszukuje poświadczenia w magazynie trwałym. Jeśli zostanie znalezione dopasowanie, ta metoda zwraca wskaźnik do obiektu poświadczeń zawierającego informacje.

    Domyślnie poświadczenia użytkownika wysyłane za pośrednictwem sieci są szyfrowane. Aby zmienić tę opcję na zwykły tekst, ustaw flagę MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT.

    Aby usunąć informacje z rejestru, najpierw wywołaj GetCredential, aby uzyskać obiekt poświadczeń, a następnie użyj SetUserOption i ustaw wartość dwOptionsFlags na MFNET_CREDENTIAL_DONT_CACHE.

Uwierzytelnianie Źródła Sieci