我是.Net和X509Certificates的新手。我将使用.net内核编写一个应用程序,以查找Windows和Mac的所有已安装证书。我在这里已经看了这个例子。我想知道
- 这些枚举同时适用于Windows和Macos
- 这是否足以在两个平台上找到所有安装的证书
谢谢。
枚举的"作用"在于您可以传入它们。但在macOS上,只有以下StoreName值才能成功:
- My(读写,如果应用任何自定义信任规则,删除将失败)
- 根目录(只读)
- 不允许(只读)
My
对应于System.keychain
(LocalMachine
)或login.keychain
(CurrentUser
)。
- 这是否足以在两个平台上找到所有安装的证书
不,它们在任何平台上都不足以查找所有安装的证书。
- 在macOS上,可以创建任意数量的密钥链,而.NET无法枚举它们
- 在Windows上,可以创建任意数量的自定义命名存储,而.NET无法枚举它们
- 在这两个系统上,东西可以安装在不同的用户下
但是,在这两个平台上,枚举"可用证书"的My
存储或"可信证书"的Root
存储是一个足够的99%解决方案。