Я хочу сохранить и получить пароль с помощью Windows Hello
. Пользователь может выбрать во время входа в систему, хочет ли он ввести свой пароль вручную, или если он хочет использовать Windows Hello
для разблокировки (который затем извлекает последний использованный пароль и заполняет его для пользователя).
Если Windows Hello
настроен правильно, в документе есть два варианта использования.
Один нужно просто разблокировать:
UserConsentVerificationResult consentResult = await UserConsentVerifier.RequestVerificationAsync("userMessage");
if (consentResult.Equals(UserConsentVerificationResult.Verified))
{
// continue
}
и один для подписи сообщения с сервера:
var openKeyResult = await KeyCredentialManager.OpenAsync(AccountId);
if (openKeyResult.Status == KeyCredentialStatus.Success)
{
var userKey = openKeyResult.Credential;
var publicKey = userKey.RetrievePublicKey();
//the message is the challenge from the server
var signResult = await userKey.RequestSignAsync(message);
if (signResult.Status == KeyCredentialStatus.Success)
{
//the with the private key of the user signed message
return signResult.Result;
}
}
Оба не очень полезны для моего варианта использования: мне нужен симметричный способ хранения и извлечения пароля.
Коротко о моем вопросе:
Есть ли способ симметрично хранить данные с помощью Windows Hello
?
соответствующие документы:
https://docs.microsoft.com/en-us/windows/uwp/security/microsoft-passport