我希望在卸载窗口 Metro 应用程序时删除用户凭据。当我使用密码保险库保存密码时,它并没有发生。有没有其他方法可以解决我的问题?
问问题
1243 次
2 回答
3
还有另一种方式。您可以创建一个 LocalSettings 键来存储 bool 值,如果用户创建并使用此 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;
于 2015-02-24T06:02:31.850 回答
1
Windows 应用商店应用无法参与卸载过程,因此您无法直接进行。看起来像这样的一段应用程序状态应该在卸载时被清除,但目前它并不能那样工作。
您可以使用自己的加密方案将凭据存储在您自己的添加数据中,卸载时将被清除。当然,要确保安全,这将是一项重要的工作。
如果您只想确保在安装应用程序后重新获取凭据,那么您可以在本地应用程序数据中维护一个标志,指示是否从储物柜加载凭据。首次安装时,此标志将不存在,因此您需要重新收集凭据。保存在储物柜中后,请在应用数据中保存一个标志,表明已发生这种情况,以便后续会话从储物柜加载。如果应用程序被卸载,应用程序数据内容将被清除,以便在重新安装和启动时再次收集凭据。
于 2013-10-25T20:46:10.087 回答