UserConsentVerifier Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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. Confira 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;
// Retrieve the window handle of the current WinUI 3 window.
var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
// Use the interop interface to request the logged on user's consent via device authentication
var consentResult = await Windows.Security.Credentials.UI.UserConsentVerifierInterop.RequestVerificationForWindowAsync(hwnd, userMessage);
switch (consentResult)
{
case Windows.Security.Credentials.UI.UserConsentVerificationResult.Verified:
returnMessage = "User verified.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DeviceBusy:
returnMessage = "Authentication device is busy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DeviceNotPresent:
returnMessage = "No authentication device found.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DisabledByPolicy:
returnMessage = "Authentication device verification is disabled by policy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.NotConfiguredForUser:
returnMessage = "Please go to Account Settings to set up PIN or other advanced authentication.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.RetriesExhausted:
returnMessage = "There have been too many failed attempts. Device authentication canceled.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.Canceled:
returnMessage = "Device authentication canceled.";
break;
default:
returnMessage = "Authentication device is currently unavailable.";
break;
}
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;
// Request the logged on user's consent via authentication device.
var consentResult = await Windows.Security.Credentials.UI.UserConsentVerifier.RequestVerificationAsync(userMessage);
switch (consentResult)
{
case Windows.Security.Credentials.UI.UserConsentVerificationResult.Verified:
returnMessage = "User verified.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DeviceBusy:
returnMessage = "Authentication device is busy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DeviceNotPresent:
returnMessage = "No authentication device found.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.DisabledByPolicy:
returnMessage = "Authentication device verification is disabled by policy.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.NotConfiguredForUser:
returnMessage = "Please go to Account Settings to set up PIN or other advanced authentication.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.RetriesExhausted:
returnMessage = "There have been too many failed attempts. Device authentication canceled.";
break;
case Windows.Security.Credentials.UI.UserConsentVerificationResult.Canceled:
returnMessage = "Device authentication canceled.";
break;
default:
returnMessage = "Authentication device is currently unavailable.";
break;
}
return returnMessage;
}
Aplicativos da área de trabalho usando C++/WinRT
Para um aplicativo da área de trabalho, em vez de chamar o método UserConsentVerifier.RequestVerificationAsync , você precisará:
- Primeiro, obtenha o identificador para a janela que solicitará a verificação. Consulte Recuperar um identificador de janela (HWND) para obter detalhes sobre como fazer isso para a Biblioteca de Interface do Usuário do Windows (WinUI) 3.
- Obtenha a fábrica de ativação para o objeto Windows.Security.Credentials.UI.UserConsentVerifier .
- Chame o método RequestVerificationForWindowAsync da interface de interoperabilidade IUserConsentVerifierInterop .
winrt::Windows::Foundation::IAsyncOperation<winrt::hstring> MainWindow::RequestConsent(winrt::hstring userMessage)
{
auto lifetime = get_strong();
winrt::hstring returnMessage;
// Retrieve the window handle of the current WinUI 3 window.
HWND hwnd;
winrt::check_hresult(m_inner->as<::IWindowNative>()->get_WindowHandle(&hwnd));
// Use the interop interface to request the logged on user's consent via device authentication
auto interop = winrt::get_activation_factory<winrt::Windows::Security::Credentials::UI::UserConsentVerifier, ::IUserConsentVerifierInterop>();
auto consentResult =
co_await winrt::capture<winrt::Windows::Foundation::IAsyncOperation<winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult>>(
interop, &::IUserConsentVerifierInterop::RequestVerificationForWindowAsync, hwnd, reinterpret_cast<HSTRING>(winrt::get_abi(userMessage))));
switch (consentResult)
{
case winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult::Verified:
returnMessage = L"User verified.";
break;
case winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult::DeviceBusy:
returnMessage = L"Authentication device is busy.";
break;
case winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult::DeviceNotPresent:
returnMessage = L"No authentication device found.";
break;
case winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult::DisabledByPolicy:
returnMessage = L"Authentication device verification is disabled by policy.";
break;
case winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult::NotConfiguredForUser:
returnMessage = L"Please go to Account Settings to set up PIN or other advanced authentication.";
break;
case winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult::RetriesExhausted:
returnMessage = L"There have been too many failed attempts. Device authentication canceled.";
break;
case winrt::Windows::Security::Credentials::UI::UserConsentVerificationResult::Canceled:
returnMessage = L"Device authentication canceled.";
break;
default:
returnMessage = L"Authentication device is currently unavailable.";
break;
}
co_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 a 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 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 de autenticação, 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 de autenticação, como o PIN do Microsoft Passport, Windows Hello ou um leitor de impressão digital. Essa API é para aplicativos de Plataforma Universal do Windows (UWP). 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
- Windows.Security.Credentials.UI
- Recuperar um identificador de janela (HWND)
- Chamar APIs de interoperabilidade com um aplicativo .NET
- Exibir objetos da interface do usuário do WinRT que dependem do CoreWindow
- Biometria por impressão digital
- Exemplo de UserConsentVerifier
- Autenticação e identidade do usuário
- Exemplo de UserConsentVerifier (Windows 10)