Skip to content

Latest commit

 

History

History
91 lines (77 loc) · 4.05 KB

userconsentverifier_checkavailabilityasync_167910294.md

File metadata and controls

91 lines (77 loc) · 4.05 KB
-api-id -api-type
M:Windows.Security.Credentials.UI.UserConsentVerifier.CheckAvailabilityAsync
winrt method

Windows.Security.Credentials.UI.UserConsentVerifier.CheckAvailabilityAsync

-description

Checks to see whether an authentication device, such as a Microsoft Passport PIN, Windows Hello, or fingerprint reader, is available.

-returns

A UserConsentVerifierAvailability value that describes the result of the availability check operation.

-remarks

The following example shows a method that checks to see if an authentication device is supported for the current user and returns a message that describes the result.

public async Task<string> CheckDeviceAvailability()
{
    string returnMessage;

    // Check the availability of device authentication.
    var ucvAvailability = await Windows.Security.Credentials.UI.UserConsentVerifier.CheckAvailabilityAsync();

    switch (ucvAvailability)
    {
        case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.Available:
            returnMessage = "Authentication device is available.";
            break;
        case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.DeviceBusy:
            returnMessage = "Authentication device is busy.";
            break;
        case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.DeviceNotPresent:
            returnMessage = "No authentication device found.";
            break;
        case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.DisabledByPolicy:
            returnMessage = "Authentication device verification is disabled by policy.";
            break;
        case Windows.Security.Credentials.UI.UserConsentVerifierAvailability.NotConfiguredForUser:
            returnMessage = "Please go to Account Settings to set up a PIN or other advanced authentication.";
            break;
        default:
            returnMessage = "Authentication device is currently unavailable.";
            break;
    }

    return returnMessage;
}
winrt::Windows::Foundation::IAsyncOperation<winrt::hstring> CheckDeviceAvailability()
{
    winrt::hstring returnMessage;

    // Check the availability of device authentication.
    auto ucvAvailability = co_await Windows::Security::Credentials::UI::UserConsentVerifier::CheckAvailabilityAsync();

    switch (ucvAvailability)
    {
        case winrt::Windows::Security::Credentials::UI::UserConsentVerifierAvailability::Available:
            returnMessage = L"Authentication device is available.";
            break;
        case winrt::Windows::Security::Credentials::UI::UserConsentVerifierAvailability::DeviceBusy:
            returnMessage = L"Authentication device is busy.";
            break;
        case winrt::Windows::Security::Credentials::UI::UserConsentVerifierAvailability::DeviceNotPresent:
            returnMessage = L"No authentication device found.";
            break;
        case winrt::Windows::Security::Credentials::UI::UserConsentVerifierAvailability::DisabledByPolicy:
            returnMessage = L"Authentication device verification is disabled by policy.";
            break;
        case winrt::Windows::Security::Credentials::UI::UserConsentVerifierAvailability::NotConfiguredForUser:
            returnMessage = L"Please go to Account Settings to set up a PIN or other advanced authentication.";
            break;
        default:
            returnMessage = L"Authentication device is currently unavailable.";
            break;
    }

    co_return returnMessage;
}

-examples

-see-also

Fingerprint biometrics, UserConsentVerifier sample, Windows.Security.Credentials.UI, Authentication and user identity