X509Certificates枚举(例如StoreName和StoreLocation)是否足以用于Windows和Macos平台?

时间:2019-02-11 15:48:49

标签: .net windows macos asp.net-core-2.0 x509certificate

.Net和X509Certificates是我的新手。我要编写一个使用.net core的应用程序,以查找Windows和Mac的所有已安装证书。 我已经看过这个示例here。我想知道

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

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

My对应于System.keychainLocalMachine)或login.keychainCurrentUser)。

  
      
  1. 在两个平台上查找所有已安装的证书是否足够?
  2.   

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

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

但是在两个平台上枚举My存储区为“可用证书”或Root存储区为“可信证书”就足够了。