.net - 您如何从X509Certificate2解析主题备用名称?

标签 .net certificate x509certificate2

是否有一种简单的方法来从X509Certificate2对象获取主题备用名称?

        foreach (X509Extension ext in certificate.Extensions)
        {
            if (ext.Oid.Value.Equals(/* SAN OID */"2.5.29.17"))
            {
                byte[] raw = ext.RawData;
                // ?????? parse to get type and name ????????
            }
        }

最佳答案

将扩展名的Format method用于可打印的版本。

X509Certificate2 cert = /* your code here */;

foreach (X509Extension extension in cert.Extensions)
{
    // Create an AsnEncodedData object using the extensions information.
    AsnEncodedData asndata = new AsnEncodedData(extension.Oid, extension.RawData);
    Console.WriteLine("Extension type: {0}", extension.Oid.FriendlyName);
    Console.WriteLine("Oid value: {0}",asndata.Oid.Value);
    Console.WriteLine("Raw data length: {0} {1}", asndata.RawData.Length, Environment.NewLine);
    Console.WriteLine(asndata.Format(true));
}

关于.net - 您如何从X509Certificate2解析主题备用名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16698307/

相关文章:

c# - 模拟企业 Lib 5 'Database'

java - 将 Base64 编码的 CER 文件保存到字符串

asp.net - 缓解 Web 服务器上的 RsaCryptoServiceProvider 线程安全问题

x509certificate2 - 离线撤销模式

.net - 使用.NET 2.0 XSLT实现可以动态评估XPath变量字符串吗?

c# - 多个 Control.BeginInvoke/Invoke 调用会按顺序执行吗?

android-studio - Libgdx 未找到匹配的签名身份 '/(?i)iPhone Developer|iOS Development/'

ios - 找不到 iOS 开发证书

c# - 从文件加载证书文件

java - 在 MVC 框架中捕获异常的位置