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

Windows 8 卸载应用程序时如何删除PasswordVault保存的凭据?,windows-8,windows-store-apps,credentials,passwordvault,Windows 8,Windows Store Apps,Credentials,Passwordvault,我希望在卸载Windows metro应用程序时删除用户凭据。 当我使用密码保险库保存密码时,它并不令人愉快。 是否有其他方法可以解决我的问题?Windows应用商店应用程序无法参与卸载过程,因此您无法直接执行此操作。看起来像这样的应用程序状态应该在卸载时清除,但目前还不能这样工作 您可以使用自己的加密方案将凭据存储在自己的添加数据中,卸载时会清除这些数据。当然,为了安全起见,这将是一项重要的工作 如果您只想确保在安装应用程序后重新获取凭据,则可以在本地应用程序数据中维护一个标志,指示是否从锁柜

我希望在卸载Windows metro应用程序时删除用户凭据。 当我使用密码保险库保存密码时,它并不令人愉快。
是否有其他方法可以解决我的问题?

Windows应用商店应用程序无法参与卸载过程,因此您无法直接执行此操作。看起来像这样的应用程序状态应该在卸载时清除,但目前还不能这样工作

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


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

Windows应用商店应用程序无法参与卸载过程,因此您无法直接执行此操作。看起来像这样的应用程序状态应该在卸载时清除,但目前还不能这样工作

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


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

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

您可以这样实现它:

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

//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.ContainsKey(“用户性别歧视”))
{
IReadOnlyList userDetailsList=loginVault.RetrieveAll();
foreach(userDetailsList中的PasswordCredential x)
{
尝试{loginVault.Remove(x);}
catch(异常错误){Debug.WriteLine(错误);}
}
Debug.WriteLine(“\n未找到任何用户!!已重置登录错误。所有以前的用户详细信息都已删除。”);
}

由于先前安装中的用户详细信息已删除,现在您可以创建一个新用户并添加
localSettings[“usersExists”]=true

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

您可以这样实现它:

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

//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.ContainsKey(“用户性别歧视”))
{
IReadOnlyList userDetailsList=loginVault.RetrieveAll();
foreach(userDetailsList中的PasswordCredential x)
{
尝试{loginVault.Remove(x);}
catch(异常错误){Debug.WriteLine(错误);}
}
Debug.WriteLine(“\n未找到任何用户!!已重置登录错误。所有以前的用户详细信息都已删除。”);
}
由于先前安装中的用户详细信息已删除,现在您可以创建一个新用户并添加
localSettings[“usersExists”]=true