Freigeben über


(Biometrische) Authentifizierung per Fingerabdruck (HTML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Sie können die Sicherheit Ihrer App erhöhen, indem Sie die Anforderung für eine (biometrische) Authentifizierung per Fingerabdruck integrieren, wenn die Zustimmung des Benutzers für eine bestimmte Aktion erforderlich ist. Sie können beispielsweise die Authentifizierung per Fingerabdruck anfordern, bevor ein In-App-Einkauf oder der Zugriff auf eingeschränkte Ressourcen autorisiert wird. Die Authentifizierung per Fingerabdruck kann mithilfe der UserConsentVerifier-Klasse im Windows.Security.Credentials.UI-Namespace verwaltet werden.

Durch Aufrufen der UserConsentVerifier.CheckAvailabilityAsync-Methode kann ermittelt werden, ob das Gerät einen Fingerabdruckleser hat. Aber auch dann, wenn ein Gerät die Authentifizierung per Fingerabdruck unterstützt, sollte dennoch die App in den Einstellungen eine Option enthalten, mit der die Authentifizierung per Fingerabdruck aktiviert bzw. deaktiviert werden kann. Weitere Informationen zum Erstellen dieser Einstellung finden Sie unter Hinzufügen von App-Einstellungen.

Das folgende Beispiel zeigt eine Methode, die überprüft, ob der aktuelle Computer die Authentifizierung per Fingerabdruck unterstützt, und anschließend eine Meldung mit dem Ergebnis zurückgibt.

function checkFingerprintAvailability() {
    try {
        // Check the availability of fingerprint authentication.

        Windows.Security.Credentials.UI.UserConsentVerifier.checkAvailabilityAsync().then(
        function (ucvAvailability) {

            switch (ucvAvailability)
            {
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.available:
                    outputDiv.innerHTML = "<br/>Fingerprint verification is available.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.deviceBusy:
                    outputDiv.innerHTML = "<br/>Biometric device is busy.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.deviceNotPresent:
                    outputDiv.innerHTML = "<br/>No biometric device found.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.disabledByPolicy:
                    outputDiv.innerHTML = "<br/>Biometric verification is disabled by policy.";
                    break;
                case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.notConfiguredForUser:
                    outputDiv.innerHTML = "<br/>The user has no fingerprints registered. Please add a fingerprint to the " +
                                    "fingerprint database and try again.";
                    break;
                default:
                    outputDiv.innerHTML = "<br/>Fingerprints verification is currently unavailable.";
                    break;
            }
        });
    }
    catch (ex) {
        outputDiv.innerHTML = "<br/>Fingerprint authentication availability check failed: " + ex.toString();
    }
}

Wenn Sie die Benutzerzustimmung über einen Fingerabdruckscan anfordern möchten, rufen Sie die UserConsentVerifier.RequestVerificationAsync-Methode auf. Damit die Authentifizierung per Fingerabdruck funktioniert, muss der Benutzer vorher einen Fingerabdruck in der Fingerabdruckdatenbank hinterlegt haben. Beim Aufrufen von UserConsentVerifier.RequestVerificationAsync wird dem Benutzer ein modales Dialogfeld angezeigt, in dem ein Fingerabdruckscan angefordert wird. Sie können in der UserConsentVerifier.RequestVerificationAsync-Methode eine Meldung bereitstellen, die dem Benutzer im modalen Dialogfeld angezeigt wird (siehe folgende Abbildung).

Modales Dialogfeld für die Authentifizierung per Fingerabdruck

Das folgende Beispiel zeigt eine Methode, die die Überprüfung per Fingerabdruck anfordert und anschließend eine Meldung mit dem Ergebnis zurückgibt.

function requestConsent(userMessage) {
    if (!userMessage) {
        userMessage = "Please provide fingerprint verification.";
    }

    try {
        // Request the logged on user's consent via fingerprint swipe.
        Windows.Security.Credentials.UI.UserConsentVerifier.requestVerificationAsync(userMessage) 
        .then(
            function (consentResult) { 
                switch (consentResult) {
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.verified:
                        outputDiv.innerHTML = "<br/>Fingerprint verified.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.deviceBusy:
                        outputDiv.innerHTML = "<br/>Biometric device is busy.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.deviceNotPresent:
                        outputDiv.innerHTML = "<br/>No biometric device found.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.disabledByPolicy:
                        outputDiv.innerHTML = "<br/>Biometric verification is disabled by policy.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.notConfiguredForUser:
                        outputDiv.innerHTML = "<br/>The user has no fingerprints registered. Please add a fingerprint to the " +
                                        "fingerprint database and try again.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.retriesExhausted:
                        outputDiv.innerHTML = "<br/>There have been too many failed attempts. Fingerprint authentication canceled.";
                        break;
                    case Windows.Security.Credentials.UI.UserConsentVerificationResult.canceled:
                        outputDiv.innerHTML = "<br/>Fingerprint authentication canceled.";
                        break;
                    default:
                        outputDiv.innerHTML = "<br/>Fingerprint authentication is currently unavailable.";
                        break;
                }
            });
    }
    catch (ex) {
        outputDiv.innerHTML = "<br/>Fingerprint authentication failed: " + ex.toString();
    }
}

Verwandte Themen

Beispiel für "UserConsentVerifier"

UserConsentVerifier

Windows.Security.Credentials.UI

Authentifizierung und Benutzeridentität