UserConsentVerifier Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Comprueba la disponibilidad de un dispositivo de verificación (como un PIN de Microsoft Passport, Windows Hello biométrica o lector de huellas digitales) y realiza una comprobación.
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
- Herencia
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Ejemplos
Aplicaciones de escritorio con C#
Para una aplicación de escritorio, en lugar de llamar al método UserConsentVerifier.RequestVerificationAsync , deberá:
- En primer lugar, recupere un identificador de ventana (HWND). Ese tema contiene ejemplos de código para la Biblioteca de interfaz de usuario de Windows (WinUI) 3, Windows Presentation Foundation (WPF) y Windows Forms (WinForms). Conecte ese código a la lista de código siguiente.
- A continuación, llame al método RequestVerificationForWindowAsync de la clase de interoperabilidad Windows.Security.Credentials.UI.UserConsentVerifierInterop de C#. Para obtener más información sobre las clases de interoperabilidad de C#, consulte Llamada a las API de interoperabilidad desde una aplicación .NET. Consulta también Mostrar objetos de interfaz de usuario de WinRT que dependen de 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;
}
aplicaciones de Plataforma universal de Windows (UWP) con C#
Este ejemplo de código es para una aplicación Plataforma universal de Windows (UWP). Muestra una solicitud de verificación con huella digital seguida de devolver un mensaje que describe el resultado. El código llama al método UserConsentVerifier.RequestVerificationAsync , que es adecuado para las aplicaciones para 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;
}
Aplicaciones de escritorio con C++/WinRT
Para una aplicación de escritorio, en lugar de llamar al método UserConsentVerifier.RequestVerificationAsync , deberá:
- En primer lugar, obtenga el identificador de la ventana que solicitará la comprobación. Consulta Recuperar un identificador de ventana (HWND) para obtener más información sobre cómo hacerlo para la Biblioteca de interfaz de usuario de Windows (WinUI) 3.
- Obtenga el generador de activación para el objeto Windows.Security.Credentials.UI.UserConsentVerifier .
- Llame al método RequestVerificationForWindowAsync de la interfaz de interoperabilidad 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;
}
Comentarios
Puede usar UserConsentVerifier para mejorar la seguridad de la aplicación si incluye una solicitud de comprobación siempre que el usuario tenga que dar su consentimiento a una acción determinada. Por ejemplo, puede requerir autenticación con huella digital antes de autorizar una compra desde la aplicación o el acceso a recursos restringidos. Puede usar UserConsentVerifier para determinar si la autenticación con huellas digitales es compatible con el equipo actual mediante el método CheckAvailabilityAsync y, a continuación, solicitar el consentimiento del usuario de un examen de huella digital mediante el método RequestVerificationAsync .
Métodos
CheckAvailabilityAsync() |
Comprueba si hay disponible un dispositivo de autenticación, como un PIN de Microsoft Passport, Windows Hello o lector de huellas digitales. |
RequestVerificationAsync(String) |
Realiza una comprobación mediante un dispositivo de autenticación como el PIN de Microsoft Passport, Windows Hello o un lector de huellas digitales. Esta API es para aplicaciones Plataforma universal de Windows (UWP). La API alternativa que se usa para una aplicación de escritorio se describe en Ejemplos de la clase UserConsentVerifier. |
Se aplica a
Consulte también
- Windows.Security.Credentials.UI
- Recuperación de un identificador de ventana (HWND)
- Llamada a las API de interoperabilidad desde una aplicación con .NET
- Visualización de objetos de la interfaz de usuario de WinRT que dependen de CoreWindow
- Biometría de huellas digitales
- Ejemplo userConsentVerifier
- Autenticación e identidad de usuario
- Ejemplo UserConsentVerifier (Windows 10)