Как удалить сохраненные учетные данные PasswordVault при удалении приложения?
Я хочу, чтобы учетные данные пользователя были удалены при удалении приложения окна метро. Это не происходит, когда я использую хранилище паролей для сохранения паролей. Есть ли другой способ решить мою проблему?
2 ответа
Есть другой способ. Вы можете создать ключ LocalSettings для хранения значения bool, например true, если пользователь создан, и использовать этот ключ LocalSettings (если он не найден) для очистки хранилища.
Вы можете реализовать это так:
Проверьте, следует ли удалять учетные данные из предыдущей установки или нет
//WILL RUN ONLY WHEN NO USER FOUND (FROM CURRENT INSTALL)
if (!localSettings.ContainsKey("usersExists"))
{
IReadOnlyList<PasswordCredential> userDetailsList = loginVault.RetrieveAll();
foreach (PasswordCredential x in userDetailsList)
{
try { loginVault.Remove(x); }
catch (Exception Error) { Debug.WriteLine(Error); }
}
Debug.WriteLine("\nNo User Found!! LoginVault has been reset. All Previous User Details are removed.");
}
Поскольку пользовательские данные из предыдущей установки удалены, теперь вы можете создать нового пользователя и добавить localSettings["usersExists"] = true;
Приложения Магазина Windows не могут участвовать в процессе удаления, поэтому вы не можете сделать это напрямую. Кажется, что такое состояние приложения должно быть очищено при удалении, но в настоящее время это не работает.
Вы можете использовать свою собственную схему шифрования для хранения учетных данных в ваших собственных данных добавления, которые будут удалены при удалении. Конечно, это была бы значительная работа, чтобы быть в безопасности.
Если вы просто хотите быть уверенным в том, что повторно получите учетные данные после установки приложения, вы можете сохранить флаг в данных локального приложения, который указывает, следует ли загружать учетные данные из хранилища. При первой установке этот флаг не будет существовать, поэтому вы должны будете заново собирать учетные данные. После сохранения в хранилище сохраните флаг в данных приложения, который указывает, что это произошло, поэтому последующие сеансы загружаются из хранилища. Если приложение будет удалено, содержимое данных приложения будет очищено так, что при повторной установке и запуске вы снова будете собирать учетные данные.