Использование кэша учетных данных

Media Foundation предоставляет стандартную реализацию интерфейса IMFNetCredentialCache . Приложение, реализующее интерфейс IMFNetCredentialManager , может использовать объект кэша учетных данных по умолчанию для хранения учетных данных пользователя.

Чтобы создать объект кэша учетных данных по умолчанию, вызовите функцию MFCreateCredentialCache .

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

После создания кэша учетных данных приложение может использовать следующие методы, чтобы получить объект учетных данных, задать учетные данные пользователя и указать параметры кэширования.

  • Чтобы получить объект учетных данных для URL-адреса, вызовите метод IMFNetCredentialCache::GetCredential.

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

    Если учетные данные для указанного URL-адреса не существуют в кэше учетных данных, GetCredential создает новый объект учетных данных с пустыми значениями имени пользователя и пароля.

  • Чтобы задать имя пользователя и пароль для объекта учетных данных, вызовите IMFNetCredential::SetUser и IMFNetCredential::SetPassword.

  • Чтобы задать параметры кэширования для объекта учетных данных, вызовите метод IMFNetCredentialCache::SetUserOptions.

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

    Значения параметров dwOptionsFlags определяются в перечислении MFNetCredentialOptions . Чтобы сохранить учетные данные пользователя для URL-адреса в постоянном хранилище, установите флаг MFNET_CREDENTIAL_SAVE. Если вызов SetUserOptions завершается успешно, последующий вызов GetCredential выполняет поиск учетных данных в постоянном хранилище. Если совпадение найдено, этот метод возвращает указатель на объект учетных данных, содержащий сведения.

    По умолчанию учетные данные пользователя, отправляемые по сети, шифруются. Чтобы изменить этот параметр на чистый текст, установите флаг MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT.

    Чтобы удалить сведения из реестра, вызовите Метод GetCredential , чтобы получить объект учетных данных, а затем вызовите Метод SetUserOption и задайте для dwOptionsFlags значение MFNET_CREDENTIAL_DONT_CACHE.

Проверка подлинности источника сети