Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek vysvětluje, jak do aplikace pro Windows přidat biometrické údaje otisku prstu, včetně žádosti o ověření otisku prstu, když uživatel musí souhlasit s konkrétní akcí, zvyšuje zabezpečení vaší aplikace. Před autorizací nákupu v aplikaci nebo přístupem k omezeným prostředkům můžete například vyžadovat ověření otiskem prstu. Ověřování otiskem prstu se spravuje pomocí třídy UserConsentVerifier v oboru názvů Windows.Security.Credentials.UI .
Rozhraní API Windows Runtime (WinRT) pro biometrické údaje otisků prstů jsou součástí sady Windows Software Development Kit (SDK). Tato rozhraní API je možné používat ve WinUI i v jiných desktopových aplikacích, jako jsou WPF a WinForms. Další informace o používání rozhraní API WinRT v desktopové aplikaci pro Windows najdete v tématu Volání rozhraní API prostředí Windows Runtime v desktopových aplikacích.
Kontrola čtečky otisků prstů v zařízení
Pokud chcete zjistit, jestli má zařízení čtečku otisků prstů, zavolejte UserConsentVerifier.CheckAvailabilityAsync. I když zařízení podporuje ověřování otiskem prstu, měla by vaše aplikace uživatelům poskytnout možnost v Nastavení, aby ji povolili nebo zakázali.
public async System.Threading.Tasks.Task<string> CheckFingerprintAvailability()
{
string returnMessage = "";
try
{
// Check the availability of fingerprint authentication.
var ucvAvailability = await Windows.Security.Credentials.UI.UserConsentVerifier.CheckAvailabilityAsync();
switch (ucvAvailability)
{
case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.Available:
returnMessage = "Fingerprint verification is available.";
break;
case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.DeviceBusy:
returnMessage = "Biometric device is busy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.DeviceNotPresent:
returnMessage = "No biometric device found.";
break;
case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.DisabledByPolicy:
returnMessage = "Biometric verification is disabled by policy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.NotConfiguredForUser:
returnMessage = "The user has no fingerprints registered. Please add a fingerprint to the " +
"fingerprint database and try again.";
break;
default:
returnMessage = "Fingerprints verification is currently unavailable.";
break;
}
}
catch (Exception ex)
{
returnMessage = $"Fingerprint authentication availability check failed: {ex.ToString()}";
}
return returnMessage;
}
Vyžádání souhlasu a vrácení výsledků
- Pokud chcete požádat o souhlas uživatele při skenování otisku prstu, zavolejte metodu UserConsentVerifier.RequestVerificationAsync . Aby ověřování otiskem prstu fungovalo, musí uživatel nejprve přidat otisk prstu do databáze otisků.
- Když zavoláte UserConsentVerifier.RequestVerificationAsync, zobrazí se uživateli modální dialog s žádostí o skenování otisku prstu. Do metody UserConsentVerifier.RequestVerificationAsync , která se uživateli zobrazí jako součást modálního dialogového okna, můžete zadat zprávu, jak je znázorněno na následujícím obrázku.
private async System.Threading.Tasks.Task<string> RequestConsent(string userMessage)
{
string returnMessage;
if (String.IsNullOrEmpty(userMessage))
{
userMessage = "Please provide fingerprint verification.";
}
try
{
// Request the logged on user's consent via fingerprint swipe.
var consentResult = await Windows.Security.Credentials.UI.UserConsentVerifier.RequestVerificationAsync(userMessage);
switch (consentResult)
{
case Windows.Security.Credentials.UI.UserConsentVerificationResult.Verified:
returnMessage = "Fingerprint verified.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DeviceBusy:
returnMessage = "Biometric device is busy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DeviceNotPresent:
returnMessage = "No biometric device found.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DisabledByPolicy:
returnMessage = "Biometric verification is disabled by policy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.NotConfiguredForUser:
returnMessage = "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:
returnMessage = "There have been too many failed attempts. Fingerprint authentication canceled.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.Canceled:
returnMessage = "Fingerprint authentication canceled.";
break;
default:
returnMessage = "Fingerprint authentication is currently unavailable.";
break;
}
}
catch (Exception ex)
{
returnMessage = $"Fingerprint authentication failed: {ex.ToString()}";
}
return returnMessage;
}
Související obsah
Windows developer