Dot-Net

您如何從 X509Certificate2 解析主題備用名稱?

  • May 22, 2013

有沒有一種簡單的方法可以從 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 方法

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));
}

引用自:https://stackoverflow.com/questions/16698307