0

我是 .Net 和 X509Certificates 的新手。我将使用 .net core 编写一个应用程序来查找所有已安装的 Windows 和 Mac 证书。我在这里浏览了这个例子。我想知道如果

  1. 这些枚举适用于 Windows 和 Macos?
  2. 这是否足以在两个平台上找到所有已安装的证书?

谢谢。

4

1 回答 1

1

枚举“起作用”,因为您可以将它们传入。但在 macOS 上,只有以下 StoreName 值会成功:

  • 我的(如果应用了任何自定义信任规则,则读写、删除将失败)
  • 根(只读)
  • 不允许(只读)

My对应于System.keychain( LocalMachine) 或login.keychain( CurrentUser)。

  1. 这是否足以在两个平台上找到所有已安装的证书?

不,它们在任何平台上都不足以找到所有已安装的证书。

  • 在 macOS 上,可以创建任意数量的钥匙串,而 .NET 无法枚举它们。
  • 在 Windows 上,可以创建任意数量的自定义名称存储,而 .NET 无法枚举它们。
  • 在这两个系统上,东西都可以安装在不同的用户下。

但是枚举My“可用证书”的Root存储或“受信任的证书”的存储在两个平台上都是一个足够 99% 的解决方案。

于 2019-02-11T17:57:24.050 回答