資格情報キャッシュの使用
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に設定します。
関連トピック