День 1321. #ЗаметкиНаПолях
Получаем Согласие Пользователя Перед Выполнением Конфиденциального Кода
Перед выполнением конфиденциальных действий, таких как покупка чего-либо или показ конфиденциальных данных, необходимо получить согласие пользователя. Кроме того, необходимо убедиться, что фактический пользователь является тем, кто выполняет действие. Windows предоставляет API для получения согласия пользователя перед выполнением конфиденциальных действий.
Во-первых, нужно указать, что проект нацелен на Windows, установив свойство TargetFramework в файле .csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0-windows10.0.17763.0</TargetFramework>
</PropertyGroup>
</Project>
Теперь вы можете использовать специфический API для Windows, чтобы получить согласие:
using Windows.Security.Credentials.UI;
async Task<bool> ConsentAsync(string reason)
{
var availability = await
UserConsentVerifier.CheckAvailabilityAsync();
if (availability ==
UserConsentVerifierAvailability.Available)
{
var result = await
UserConsentVerifier
.RequestVerificationAsync(reason);
return result ==
UserConsentVerificationResult.Verified;
}
return false;
}
Также можно использовать метод ConsentAsync перед выполнением действия:
if (await ConsentAsync("Confirm your identity"))
Console.WriteLine("Cofirmed");
else
Console.WriteLine("Not confirmed");
Источник: https://www.meziantou.net/getting-user-consent-before-executing-sensitive-code.htm