gpt4 book ai didi

c# - 我可以使用 C# 列出本地安装的数字证书吗?

转载 作者:行者123 更新时间:2023-11-30 19:10:22 28 4
gpt4 key购买 nike

我一直在努力寻找获取当前安装在本地计算机上的数字证书信息的方法——任何可以获取 X509Certificate2 集合的方法。类。

我找到了 this question其中解释了如何从 .pfx 文件中获取它。

知道如何为已安装的证书执行此操作吗?

最佳答案

作为初学者,您可以看看 this code :

using System;
using System.Security.Cryptography.X509Certificates;

namespace Encryption
{
class CertificateTest
{
static void Main()
{
X509Store store = new X509Store(StoreName.Root,
StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
Console.WriteLine("Friendly Name\t\t\t\t\t Expiration date");
foreach (X509Certificate2 certificate in store.Certificates)
{
Console.WriteLine("{0}\t{1}", certificate.FriendlyName,
certificate.NotAfter);
}
store.Close();
}
}
}

网上有许多更高级的示例。寻找 System.Security.Cryptography.X509Certificates 作为关键字。

以下代码列出了您自己的证书及其属性。

static void o(string s, params object[] args)
{
Console.WriteLine(s, args);
}

static void CertList()
{
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
foreach (X509Certificate2 certificate in store.Certificates)
{
o("");
o("Friendly Name: {0}", certificate.FriendlyName);
o("Simple Name: {0}",
certificate.GetNameInfo(X509NameType.SimpleName, true));
o("Issuer: {0}", certificate.Issuer);
o("Expiration: {0}", certificate.NotAfter);

// http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509keyusageextension.aspx
foreach (X509Extension extension in certificate.Extensions)
{
o(" {0} ({1})", extension.Oid.FriendlyName, extension.Oid.Value);

if (extension.Oid.Value == "2.5.29.15")
// if (extension.Oid.FriendlyName == "Key Usage")
{
X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
o("Key usages: {0}", ext.KeyUsages);
}
else if (extension.Oid.Value == "2.5.29.37")
// if (extension.Oid.FriendlyName == "Extended Key Usage")
{
X509EnhancedKeyUsageExtension ext =
(X509EnhancedKeyUsageExtension)extension;
o("Extended Key usages: {0}", ext.EnhancedKeyUsages);
}
}
}
store.Close();
}

例程列出了我的系统上使用 Microsoft Office 2010 SELFCERT.EXE 创建的 VBA 安全证书。但是我无法识别这些证书的任何特殊属性/属性来过滤它们,

关于c# - 我可以使用 C# 列出本地安装的数字证书吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18144141/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com