如何在卸载应用程序时删除PasswordVault保存的凭据?

时间:2013-10-25 08:54:43

标签: windows-8 windows-store-apps credentials passwordvault

我希望在卸载window metro应用程序时删除用户凭据。 当我使用密码保险库来保存密码时,它并不苛求。 有没有其他方法可以解决我的问题?

2 个答案:

答案 0 :(得分:3)

还有另外一种方式。如果用户创建并使用此LocalSettings键(如果未找到)清除文件库,则可以创建一个LocalSettings键来存储bool值,如true。

您可以像这样实现:

检查是否清除以前安装的凭据

//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;

答案 1 :(得分:1)

Windows应用商店应用无法参与卸载过程,因此您无法直接执行此操作。似乎应该在卸载时清除像这样的应用程序状态,但它目前无法正常工作。

您可以使用自己的加密方案将凭据存储在自己的添加数据中,这些数据将在卸载时清除。当然,这将是一项重要的工作,以确保安全。

如果您只是想确保在安装应用程序后重新获取凭据,那么您可以在本地应用程序数据中维护一个标志,指示是否从锁定器加载凭据。首次安装时,此标志不存在,因此您可以重新收集凭据。保存在储物柜中后,在应用数据中保存一个标志,指示已发生这种情况,以便后续会话从储物柜加载。如果卸载了应用程序,则会清除应用程序数据内容,以便在重新安装和启动时再次收集凭据。