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に設定します。
関連トピック