Verwenden des Anmeldeinformationscaches
Media Foundation stellt eine Standardimplementierung der IMFNetCredentialCache-Schnittstelle bereit. Eine Anwendung, die die IMFNetCredentialManager-Schnittstelle implementiert, kann das Standardobjekt des Anmeldeinformationscaches verwenden, um die Anmeldeinformationen des Benutzers zu speichern.
Rufen Sie die MFCreateCredentialCache-Funktion auf, um das Standardobjekt des Anmeldeinformationscaches zu erstellen.
HRESULT hr = S_OK;
IMFNetCredentialCache *pCredentialCache = NULL;
hr = MFCreateCredentialCache(&pCredentialCache);
Nachdem der Anmeldeinformationscache erstellt wurde, kann die Anwendung die folgenden Methoden verwenden, um ein Anmeldeinformationsobjekt abzurufen, Benutzeranmeldeinformationen festzulegen und die Zwischenspeicherungsoptionen anzugeben.
Um das Anmeldeinformationsobjekt für eine URL abzurufen, rufen Sie IMFNetCredentialCache::GetCredential auf.
hr = pCredentialCache-> GetCredential( pszUrl, pszRealm, dwAuthenticationFlags, &pCredential, &dwRequirementsFlags);
Wenn die Anmeldeinformationen für die angegebene URL nicht im Anmeldeinformationscache vorhanden sind, erstellt GetCredential ein neues Anmeldeinformationsobjekt mit leeren Benutzernamen- und Kennwortwerten.
Um den Benutzernamen und das Kennwort für das Anmeldeinformationsobjekt festzulegen, rufen Sie IMFNetCredential::SetUser und IMFNetCredential::SetPassword auf.
Um die Zwischenspeicherungsoptionen für das Anmeldeinformationsobjekt festzulegen, rufen Sie IMFNetCredentialCache::SetUserOptions auf.
hr = pCredentialCache-> SetUserOptions( pCredentialCache, MFNET_CREDENTIAL_SAVE);
Die dwOptionsFlags-Parameterwerte werden in der MFNetCredentialOptions-Enumeration definiert. Um Benutzeranmeldeinformationen für eine URL in einem persistenten Speicher zu speichern, legen Sie das flag MFNET_CREDENTIAL_SAVE fest. Wenn der SetUserOptions-Aufruf erfolgreich abgeschlossen wird, sucht der nachfolgende Aufruf von GetCredential nach den Anmeldeinformationen im persistenten Speicher. Wenn eine Übereinstimmung gefunden wird, gibt diese Methode einen Zeiger auf das Anmeldeinformationsobjekt zurück, das die Informationen enthält.
Standardmäßig werden die über das Netzwerk gesendeten Benutzeranmeldeinformationen verschlüsselt. Um dies in Klartext zu ändern, legen Sie das flag MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT fest.
Um Informationen aus der Registrierung zu entfernen, rufen Sie GetCredential auf, um das Anmeldeinformationsobjekt abzurufen, und rufen Sie dann SetUserOption auf, und legen Sie dwOptionsFlags auf MFNET_CREDENTIAL_DONT_CACHE fest.
Zugehörige Themen