如何从存储中干净地删除证书

2024-04-10

您可以使用 certmgr.msc 中的向导将证书安装到证书存储中(右键单击安装)?有谁知道如何使用向导/代码(首选)/脚本“干净地”删除所有证书?

我希望能够从 LocalMachine 和/或 CurrentUser 存储中删除所有内容(我之前安装的),而不留下任何残留物。

Thanks


你可以尝试X509Store以及 .Net Framework 中的相关类,用于从证书存储中删除证书。以下代码示例从当前用户的“我的”存储中删除证书:

// Use other store locations if your certificate is not in the current user store.
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite | OpenFlags.IncludeArchived);

// You could also use a more specific find type such as X509FindType.FindByThumbprint
X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false);

foreach (var cert in col)
{
  Console.Out.WriteLine(cert.SubjectName.Name);

  // Remove the certificate
  store.Remove(cert);        
}
store.Close();

开始编辑:根据评论部分中的评论,我用代码示例更新了我的答案,显示如何删除证书以及链中的所有证书:

  X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false);

  X509Chain ch = new X509Chain();
  ch.Build(col[0]);
  X509Certificate2Collection allCertsInChain = new X509Certificate2Collection();

  foreach (X509ChainElement el in ch.ChainElements)
  {
    allCertsInChain.Add(el.Certificate);
  }

  store.RemoveRange(allCertsInChain);

END EDIT

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从存储中干净地删除证书 的相关文章

  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 单击 form2 上的按钮触发 form 1 中的方法

    我对 Windows 窗体很陌生 我想知道是否可以通过单击表单 2 中的按钮来触发表单 1 中的方法 我的表格 1 有一个组合框 我的 Form 2 有一个 保存 按钮 我想要实现的是 当用户单击表单 2 中的 保存 时 我需要检查表单 1
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 用于 C# 的 TripleDES IV?

    所以当我说这样的话 TripleDES tripledes TripleDES Create Rfc2898DeriveBytes pdb new Rfc2898DeriveBytes password plain tripledes Ke
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 在客户端系统中安装后桌面应用程序无法打开

    我目前正在使用 Visual Studio 2017 和 4 6 1 net 框架 我为桌面应用程序创建了安装文件 安装程序在我的系统中完美安装并运行 问题是安装程序在其他计算机上成功安装 但应用程序无法打开 edit 在客户端系统中下载了

随机推荐

  • Python setuptools:包目录不存在

    我有一个与此相关的项目setup py file import setuptools with open README md r as fh long description fh read setuptools setup name ve
  • mousemove 事件是否每帧触发一次?

    In this 小提琴演示 https jsfiddle net JoeZheng uy9poL1j 按下并移动鼠标会根据鼠标的位置绘制点 绘制方法是听mousemove回调 但它绘制了离散点 表明mousemove事件不会连续触发 更重要
  • 枚举值的类型[重复]

    这个问题在这里已经有答案了 我可以通过以下方式获取表示接口键的类型 interface I a string b string const i keyof I typeof i is a b 有没有办法类似地获取表示枚举值的类型 enum
  • 在 Dart 中实现观察者模式

    我想在 Dart 中实现观察者模式 但我不知道如何去做 假设我有一堂课 class MyClass String observed field 现在 每当我更改字段时 我都想将 observed fieldchanged 字符串打印到控制台
  • UIWebView 到 UIImage

    我尝试使用此方法从 UIWebView 捕获图像 但图像仅包含屏幕的可见区域 如何捕获 UIWebView 的完整内容 包括不可见区域 即整个网页到一张图像中 UIImage captureScreen UIView viewToCaptu
  • undefined 不是一个对象(评估route.routeName)

    when update the expo from 16 0 0 to 24 0 0 and react navigation from git https github com react community react navigati
  • 如何将UIView裁剪为半圆?

    我想将 UIView 裁剪为半圆形 提前致谢 一个方便的方法就是子类 aUIView 在其上添加一个图层 并使视图颜色透明 如果不是默认情况下 import UIKit class SemiCirleView UIView var semi
  • BaseX RESTXQ“你好世界”示例

    我正在努力开始使用基本 REST API 我已下载并安装了最新版本的 Windows 版 BaseX 我通过单击 BaseX 安装添加到 Windows 开始菜单中的 BaseX Server 开始 图标启动了 BaseX Server 看
  • node/express:使用Forever连续运行脚本时设置NODE_ENV

    我怎样才能设置NODE ENV http expressjs com guide html configuration当我使用时变量 参数为 生产 forever https github com indexzero forever启动我的
  • 如何利用 Android 的“清除缓存”按钮

    在 Android 的设置中 在 管理应用程序 活动中 单击应用程序时 数据会分解为应用程序 数据和缓存 还有一个清除缓存的按钮 我的应用程序缓存音频文件 我希望用户能够使用此按钮清除缓存 我如何存储它们 以便它们与缓存集中在一起并且用户可
  • 使用另一个域的用户凭据连接到 SQL Server

    如何使用另一个域中的用户登录名 密码连接到 SQL Server 数据库 如果我使用我的帐户连接到数据库 它工作正常 cnxn pyodbc connect DRIVER SQL Server SERVER server name DATA
  • Netbeans 错误:项目文件夹已存在且不为空

    我安装了Netbeans 因为我正在读这本书 Java in 21 days 我在编程领域完全是个新手 当我尝试在 Netbeans 中打开一个新项目时 出现错误 项目文件夹已存在且不为空 删除 nbproject 文件夹并重新启动 IDE
  • 如何让用户重新排序 UITableView 中的部分

    我正在开发一个包含股票的应用程序 按投资组合排列 所以这很适合表格视图 我正在研究编辑交互 它足够简单 允许用户添加或删除股票 将它们拖动到一个投资组合或另一个投资组合中 但我无法优雅地做的一件事是让用户将一个投资组合拖动到另一个投资组合的
  • 字符串损坏或 preg_match 错误?

    NO BREAK SPACE 和许多其他 UTF 8 符号需要 2 个字节来表示 http www fileformat info info unicode char a0 index htm 因此 在假定的 UTF8 字符串上下文中 非
  • Linux内核中的模块间通信

    我有两个 Linux 内核模块 其中一个可以为另一个提供一些功能 但使用该功能并不是必需的 即使第一个模块不存在 第二个模块也可以 并且应该 工作 如果我只是从第一个模块导出函数并在第二个模块中使用它 则第二个模块依赖于该符号 并且在没有第
  • 我可以在本地主机上使用实际网络环境进行性能测试吗?

    我需要测试在本地主机上运行的应用程序的性能 就像在在线环境中一样 我的意思是通过网络流量模拟 有限带宽模拟或其他参数进行的性能测试 就像在线一样 Apache Ab 可以模拟吗 我们用过Charles http www charlespro
  • Spring 与 JUnit 测试和依赖注入不起作用

    我尝试在 Junit 测试用例中使用 Spring 自己的依赖注入 import static org hamcrest CoreMatchers equalTo import static org hamcrest CoreMatcher
  • 有没有办法将背景图像设置为base64编码图像?

    我想在 JS 中动态更改背景 并且我的图像集采用 Base64 编码 我尝试 document getElementById bg image style backgroundImage url http amigo com 300107
  • 如何替换 Pandas 数据框字符串列中的文本?

    我的数据框中有一列 如下所示 range 2 30 50 290 400 1000 我想更换 逗号与 短跑 我目前正在使用这种方法 但没有任何改变 org info exc range replace inplace True 有人可以帮忙
  • 如何从存储中干净地删除证书

    您可以使用 certmgr msc 中的向导将证书安装到证书存储中 右键单击安装 有谁知道如何使用向导 代码 首选 脚本 干净地 删除所有证书 我希望能够从 LocalMachine 和 或 CurrentUser 存储中删除所有内容 我之