UserConsentVerifier Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überprüft die Verfügbarkeit eines Überprüfungsgeräts (z. B. eine Microsoft Passport-PIN, Windows Hello biometrischen Oder Fingerabdruckleser) und führt eine Überprüfung durch.
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
- Vererbung
- Attribute
Windows-Anforderungen
Gerätefamilie |
Windows 10 (eingeführt in 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
|
Beispiele
Desktop-Apps mit C#
Für eine Desktop-App müssen Sie folgendes ausführen, anstatt die UserConsentVerifier.RequestVerificationAsync-Methode aufzurufen:
- Rufen Sie zuerst ein Fensterhandle (HWND) ab. Dieses Thema enthält Codebeispiele für windows UI Library (WinUI) 3, Windows Presentation Foundation (WPF) und Windows Forms (WinForms). Fügen Sie diesen Code in die folgende Codeliste ein.
- Rufen Sie dann die RequestVerificationForWindowAsync-Methode der Windows.Security.Credentials.UI.UserConsentVerifierInterop-C #-Interop-Klasse auf. Weitere Informationen zu den C#-Interopklassen finden Sie unter Aufrufen von Interop-APIs aus einer .NET-App. Weitere Informationen finden Sie unter Anzeigen von WinRT-UI-Objekten, die von CoreWindow abhängen.
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;
}
Universelle Windows-Plattform-Apps (UWP) mit C#
Dieses Codebeispiel gilt für eine Universelle Windows-Plattform-App (UWP). Es wird eine Anforderung für die Fingerabdrucküberprüfung angezeigt, gefolgt von der Rückgabe einer Nachricht, die das Ergebnis beschreibt. Der Code ruft die UserConsentVerifier.RequestVerificationAsync-Methode auf, die für UWP-Apps geeignet ist.
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;
}
Desktop-Apps mit C++/WinRT
Für eine Desktop-App müssen Sie folgendes ausführen, anstatt die UserConsentVerifier.RequestVerificationAsync-Methode aufzurufen:
- Rufen Sie zunächst das Handle für das Fenster ab, in dem die Überprüfung angefordert wird. Ausführliche Informationen dazu für die Windows UI Library (WinUI) 3 finden Sie unter Abrufen eines Fensterhandles (HWND).
- Rufen Sie die Aktivierungsfactory für das Windows.Security.Credentials.UI.UserConsentVerifier-Objekt ab .
- Rufen Sie die RequestVerificationForWindowAsync-Methode der IUserConsentVerifierInterop-Interop-Schnittstelle auf.
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;
}
Hinweise
Sie können UserConsentVerifier verwenden, um die Sicherheit Ihrer App zu erhöhen, indem Sie eine Überprüfungsanforderung einfügen, wenn der Benutzer einer bestimmten Aktion zustimmen muss. Sie können z. B. eine Fingerabdruckauthentifizierung erfordern, bevor Sie einen In-App-Kauf oder Zugriff auf eingeschränkte Ressourcen autorisieren. Sie können userConsentVerifier verwenden, um zu bestimmen, ob die Fingerabdruckauthentifizierung für den aktuellen Computer unterstützt wird, indem Sie die CheckAvailabilityAsync-Methode verwenden. Anschließend können Sie mithilfe der RequestVerificationAsync-Methode die Zustimmung des Benutzers aus einem Fingerabdruckscan anfordern.
Methoden
CheckAvailabilityAsync() |
Überprüft, ob ein Authentifizierungsgerät, z. B. eine Microsoft Passport-PIN, Windows Hello oder Fingerabdruckleser, verfügbar ist. |
RequestVerificationAsync(String) |
Führt eine Überprüfung mit einem Authentifizierungsgerät wie Microsoft Passport PIN, Windows Hello oder einem Fingerabdruckleser durch. Diese API ist für Universelle Windows-Plattform-Apps (UWP) vorgesehen. Die alternative API für eine Desktop-App wird unter Beispiele in der UserConsentVerifier-Klasse beschrieben. |
Gilt für:
Weitere Informationen
- Windows.Security.Credentials.UI
- Abrufen eines Fensterhandles (HWND)
- Aufrufen von Interop-APIs aus einer .NET-App
- Anzeigen von WinRT UI-Objekten, die von CoreWindow abhängig sind
- Biometrischer Fingerabdruck
- UserConsentVerifier-Beispiel
- Authentifizierung und Benutzeridentität
- UserConsentVerifier-Beispiel (Windows 10)