【问题标题】:How to clear the certificate cache in Universal Windows Platform apps?如何清除通用 Windows 平台应用程序中的证书缓存?
【发布时间】:2016-01-29 10:09:34
【问题描述】:

UWP 应用的应用数据存储在 C:\Users\[username]\AppData\Local\Packages\[package_id]

子文件夹 AC\Microsoft\CryptnetFlushCache\MetaData 似乎包含通过 HttpClient 安全访问的网站的记录。研究表明,此文件夹及其同级文件夹是 SSL/TLS 的缓存。

如何从我自己的程序中清除此缓存?

【问题讨论】:

    标签: c# c++ ssl uwp


    【解决方案1】:

    在UWP应用中,有ApplicationData相关的API,例如ApplicationData.ClearAsync方法,但它只能从本地、漫游和临时应用数据存储中删除所有应用数据。

    我们可以使用Directory.Delete的方法删除这个AC文件夹。

    例如:

    public static void Clean()
    {
        try
        {
            StorageFolder localDirectory = ApplicationData.Current.LocalFolder;
            string path = localDirectory.Path;
            path = path.Substring(0, path.LastIndexOf("\\")) + @"\AC\Microsoft\CryptnetFlushCache\MetaData";
            Directory.Delete(path, true);
        }
        catch (Exception ex)
        {
            Debug.WriteLine("ERROR CLEANING CACHE: " + ex.Message);
        }
    }
    

    但是没有文档描述存储在此文件夹中的详细文件,因此这可能会导致您的应用出现意外行为/结果。

    【讨论】:

    • 使用 CertificateEnrollmentManager.ImportPfxDataAsync 引入的证书似乎已保存到 path.LastIndexOf("\\")) + @"\AC\Microsoft\SystemCertificates"
    猜你喜欢
    • 2018-10-05
    • 2020-08-15
    • 2013-03-19
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多