UserConsentVerifier Classe

Definição

Verifica a disponibilidade de um dispositivo de verificação (como um PIN do Microsoft Passport, Windows Hello biométrico ou leitor de impressão digital) e executa uma verificação.

public ref class UserConsentVerifier abstract sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class UserConsentVerifier final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public static class UserConsentVerifier
Public Class UserConsentVerifier
Herança
Object Platform::Object IInspectable UserConsentVerifier
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Aplicativos da área de trabalho usando C#

Para um aplicativo da área de trabalho, em vez de chamar o método UserConsentVerifier.RequestVerificationAsync , você precisará:

  • Primeiro Recupere um identificador de janela (HWND). Esse tópico contém exemplos de código para WinUI (Biblioteca de Interface do Usuário do Windows) 3, Windows Presentation Foundation (WPF) e Windows Forms (WinForms). Conecte esse código à listagem de código abaixo.
  • Em seguida, chame o método RequestVerificationForWindowAsync da classe de interoperabilidade C# Windows.Security.Credentials.UI.UserConsentVerifierInterop . Para obter mais informações sobre as classes de interoperabilidade do C#, consulte Chamar APIs de interoperabilidade de um aplicativo .NET. Consulte também Exibir objetos de interface do usuário do WinRT que dependem do CoreWindow.
private async System.Threading.Tasks.Task<string> RequestConsent(string userMessage)
{
    string returnMessage;

    if (String.IsNullOrEmpty(userMessage))
    {
        userMessage = "Please provide fingerprint verification.";
    }

    try
    {
        // Retrieve the window handle by passing a reference to the WinUI 3 window object 
        var hwnd = ...
        // Request the logged on user's consent via fingerprint swipe using the interop interface
        var consentResult = await Windows.Security.Credentials.UI.UserConsentVerifierInterop.RequestVerificationForWindowAsync(hwnd, 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;
}

aplicativos UWP (Plataforma Universal do Windows) usando C#

Este exemplo de código é para um aplicativo de Plataforma Universal do Windows (UWP). Ele mostra uma solicitação de verificação de impressão digital seguida pelo retorno de uma mensagem que descreve o resultado. O código chama o método UserConsentVerifier.RequestVerificationAsync , que é apropriado para aplicativos UWP.

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;
}

Comentários

Você pode usar UserConsentVerifier para aprimorar a segurança do aplicativo, incluindo uma solicitação de verificação sempre que o usuário precisar consentir com uma ação específica. Por exemplo, você pode exigir autenticação por impressão digital antes de autorizar uma compra no aplicativo ou acesso a recursos restritos. Você pode usar UserConsentVerifier para determinar se a autenticação por impressão digital tem suporte para o computador atual usando o método CheckAvailabilityAsync e, em seguida, solicitar o consentimento do usuário de uma verificação de impressão digital usando o método RequestVerificationAsync .

Métodos

CheckAvailabilityAsync()

Verifica se um dispositivo verificador, como um PIN do Microsoft Passport, Windows Hello ou leitor de impressão digital, está disponível.

RequestVerificationAsync(String)

Executa uma verificação usando um dispositivo como o PIN do Microsoft Passport, Windows Hello ou um leitor de impressão digital. Essa API é para aplicativos UWP (Plataforma Universal do Windows). A API alternativa a ser usada para um aplicativo da área de trabalho é descrita em Exemplos na classe UserConsentVerifier.

Aplica-se a

Confira também