UserConsentVerifier Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Verifica la disponibilità di un dispositivo di verifica, ad esempio un PIN di Microsoft Passport, Windows Hello biometrico o lettore di impronte digitali, ed esegue una verifica.
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
- Ereditarietà
- Attributi
Requisiti Windows
Famiglia di dispositivi |
Windows 10 (è stato introdotto in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)
|
Esempio
App desktop con C#
Per un'app desktop, anziché chiamare il metodo UserConsentVerifier.RequestVerificationAsync , è necessario:
- Recuperare prima di tutto un handle di finestra (HWND). Questo argomento contiene esempi di codice per Windows UI Library (WinUI) 3, Windows Presentation Foundation (WPF) e Windows Forms (WinForms). Collegare tale codice all'elenco di codice riportato di seguito.
- Chiamare quindi il metodo RequestVerificationForWindowAsync della classe di interoperabilità Windows.Security.Credentials.UI.UserConsentVerifierInterop C#. Per altre informazioni sulle classi di interoperabilità C#, vedere Chiamare API di interoperabilità da un'app .NET. Vedere Anche visualizzare oggetti dell'interfaccia utente WinRT che dipendono da 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;
}
app piattaforma UWP (Universal Windows Platform) (UWP) con C#
Questo esempio di codice è per un'app UWP (piattaforma UWP (Universal Windows Platform)). Mostra una richiesta di verifica dell'impronta digitale seguita dalla restituzione di un messaggio che descrive il risultato. Il codice chiama il metodo UserConsentVerifier.RequestVerificationAsync , appropriato per le app 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;
}
App desktop con C++/WinRT
Per un'app desktop, anziché chiamare il metodo UserConsentVerifier.RequestVerificationAsync , è necessario:
- Prima di tutto ottenere l'handle nella finestra che richiederà la verifica. Vedere Recuperare un handle di finestra (HWND) per informazioni dettagliate su come eseguire questa operazione per la libreria dell'interfaccia utente di Windows (WinUI) 3.
- Ottenere la factory di attivazione per l'oggetto Windows.Security.Credentials.UI.UserConsentVerifier .
- Chiamare il metodo RequestVerificationForWindowAsync dell'interfaccia di interoperabilità 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;
}
Commenti
È possibile usare UserConsentVerifier per migliorare la sicurezza dell'app includendo una richiesta di verifica ogni volta che l'utente è richiesto di consenso a una determinata azione. Ad esempio, è possibile richiedere l'autenticazione delle impronte digitali prima di autorizzare un acquisto in-app o l'accesso alle risorse limitate. È possibile usare UserConsentVerifier per determinare se l'autenticazione dell'impronta digitale è supportata per il computer corrente usando il metodo CheckAvailabilityAsync e quindi richiedere il consenso dell'utente da un'analisi dell'impronta digitale usando il metodo RequestVerificationAsync .
Metodi
CheckAvailabilityAsync() |
Verifica se è disponibile un dispositivo di autenticazione, ad esempio un PIN di Microsoft Passport, Windows Hello o un lettore di impronte digitali. |
RequestVerificationAsync(String) |
Esegue una verifica usando un dispositivo di autenticazione, ad esempio Il PIN microsoft Passport, Windows Hello o un lettore di impronte digitali. Questa API è per le app UWP (piattaforma UWP (Universal Windows Platform)). L'API alternativa da usare per un'app desktop è descritta in Esempi nella classe UserConsentVerifier. |
Si applica a
Vedi anche
- Windows.Security.Credentials.UI
- Recuperare un handle di finestra (HWND)
- Chiamare API di interoperabilità da un'app .NET
- Visualizzare oggetti dell'interfaccia utente WinRT che dipendono da CoreWindow
- Biometria con impronta digitale
- Esempio userConsentVerifier
- Autenticazione e identità utente
- Esempio userConsentVerifier (Windows 10)