За главным окном приложения появляется всплывающее окно безопасности Windows

Я использую API-интерфейсы Windows 10 "Паспорт" и "Окно Hello" в своем приложении WPF.

bool keyCredentialAvailable = await KeyCredentialManager.IsSupportedAsync();
if (keyCredentialAvailable)
{
      KeyCredentialRetrievalResult keyCreationResult = await KeyCredentialManager.RequestCreateAsync("Hi", KeyCredentialCreationOption.ReplaceExisting);

}

RequestCreateAsync Метод открывает всплывающее окно, которое запрашивает биометрические или пин-код. Который виден на скриншоте в задней части MainWindow.

У меня нет никаких ссылок на это всплывающее окно, что я могу принести его впереди. Кроме того, я вызываю этот метод в моем главном окне Loaded метод, чтобы подтвердить, что главное окно загружено полностью.

Проблема с позиционированием всплывающих окон

Ожидаемое позиционирование

2 ответа

Я подал на Github проблему с проектом Microsoft C ++ / WinRT, который я использую для доступа к тому же API, и столкнулся с проблемой.

https://github.com/microsoft/cppwinrt/issues/999#issuecomment-897675623

Нет решения, но «Обычно это происходит, когда родительское окно установлено неправильно». Я понятия не имею, как правильно установить родительское окно в этом случае, поскольку API не предоставляет никаких дескрипторов во всплывающем окне.

Сначала проверьте, является ли ваша функция асинхронной.

private async void SignInPassport()
{
 bool keyCredentialAvailable = await KeyCredentialManager.IsSupportedAsync();
 if (keyCredentialAvailable)
 {
  KeyCredentialRetrievalResult keyCreationResult = await KeyCredentialManager.RequestCreateAsync("Hi",KeyCredentialCreationOption.ReplaceExisting);
  }
}

если это не решит вашу проблему, попробуйте этот microsoft-passport-login

Другие вопросы по тегам