使用凭据缓存
媒体基础提供 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。
相关主题