Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 对于Windows和Macos平台,像StoreName和StoreLocation这样的X509证书枚举是否足够?_.net_Windows_Macos_Asp.net Core 2.0_X509certificate - Fatal编程技术网

.net 对于Windows和Macos平台,像StoreName和StoreLocation这样的X509证书枚举是否足够?

.net 对于Windows和Macos平台,像StoreName和StoreLocation这样的X509证书枚举是否足够?,.net,windows,macos,asp.net-core-2.0,x509certificate,.net,Windows,Macos,Asp.net Core 2.0,X509certificate,我不熟悉.Net和X509证书。我将使用.net core编写一个应用程序,以查找Windows和Mac的所有已安装证书。 我已经看了这个例子。我想知道 这些枚举适用于Windows和Macos 这在两个平台上是否足以查找所有已安装的证书 谢谢。枚举“有效”,因为您可以将它们传递进来。但在macOS上,只有以下StoreName值会成功: My(如果应用了任何自定义信任规则,则读写、删除将失败) 根目录(只读) 不允许(只读) My对应于System.keychain(LocalMachin

我不熟悉.Net和X509证书。我将使用.net core编写一个应用程序,以查找Windows和Mac的所有已安装证书。 我已经看了这个例子。我想知道

  • 这些枚举适用于Windows和Macos
  • 这在两个平台上是否足以查找所有已安装的证书
  • 谢谢。

    枚举“有效”,因为您可以将它们传递进来。但在macOS上,只有以下StoreName值会成功:

    • My(如果应用了任何自定义信任规则,则读写、删除将失败)
    • 根目录(只读)
    • 不允许(只读)
    My
    对应于
    System.keychain
    LocalMachine
    )或
    login.keychain
    CurrentUser

  • 这在两个平台上是否足以查找所有已安装的证书
  • 不,它们不足以在任何平台上查找所有已安装的证书

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

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

    这些类是为Windows设计的,Microsoft将它们映射到相应的Mac位置,说“足够”或“不够”就太宽泛了。你的具体情况是什么?