You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP应用卸载时自动清除PasswordVault敏感数据的方案咨询

UWP应用卸载时清除PasswordVault敏感数据的解决方案

方案1:扩展卸载任务(Uninstall Task)

这是目前最可靠的自动触发方案,适用于Windows 10 1809及以上版本:

  • 在Package.appxmanifest中添加desktop6:Extension扩展,声明runFullTrust能力,指定扩展类型为windows.uninstallTask,关联一个无UI的Win32控制台程序。
  • 编写控制台程序,通过PasswordVaultAPI清理当前应用的凭据:
    using Windows.Security.Credentials;
    
    var vault = new PasswordVault();
    try
    {
        var allCreds = vault.RetrieveAll();
        foreach (var cred in allCreds)
        {
            // 验证凭据属于当前应用(可通过Resource或UserName字段匹配应用唯一标识)
            if (cred.Resource.Equals("YourAppUniqueTag", StringComparison.Ordinal))
            {
                vault.Remove(cred);
            }
        }
    }
    catch (Exception)
    {
        // 无凭据时跳过异常
    }
    
  • 将控制台程序打包进UWP包内,在manifest中配置卸载任务的执行路径。注意:提交商店时需说明runFullTrust能力的用途,避免审核驳回。

方案2:迁移至应用专属存储(替代PasswordVault)

如果业务允许,可放弃PasswordVault,改用应用的本地/漫游文件夹存储加密后的敏感数据:

  • 对敏感数据进行AES加密后,写入ApplicationData.Current.LocalFolder或RoamingFolder。
  • 这些文件夹会在应用卸载时被系统自动删除,无需额外处理。
  • 若必须保留PasswordVault,可在应用启动时检查应用安装状态(通过Package.Current判断),若检测到异常残留则主动清理凭据,但此方法依赖用户再次启动应用,无法完全自动触发。

关键注意事项

  • 卸载任务必须是无UI的后台进程,不能弹出窗口,否则会被系统强制终止。
  • 测试卸载流程时,不要使用Visual Studio的调试卸载,需手动卸载应用后,通过控制面板的“凭据管理器”验证数据是否清除。

内容的提问来源于stack exchange,提问作者Pierre Whats Up Scadra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 15:45:02