使用C#从证书签名请求(CSR)中读取电子邮件字段

时间:2015-07-06 15:59:03

标签: c# x509certificate csr

我使用以下代码来阅读CSR的属性:

string csr = myCSR;
CX509CertificateRequestPkcs10 request = new CX509CertificateRequestPkcs10();
request.InitializeDecode(csr, EncodingType.XCN_CRYPT_STRING_BASE64_ANY);
request.CheckSignature();
string tmp = ReadDnsSan(request);
string attribs = (((CX500DistinguishedName)request.Subject).Name);

在attribs我获得了通用名称,组织,部门,城市,国家,但没有电子邮件地址

CSR不一定是强制性的吗? 有没有办法用C#读取它?

1 个答案:

答案 0 :(得分:2)

  

在attribs中我得到了通用名称,组织,部门

您的方向正确,但似乎主题字段中未显示电子邮件RDN属性。

  

CSR不一定是强制性的吗?

没有。此外,整个主题字段是可选的。因此,您可能需要相应地修改代码。主题字段为空时可能存在某种情况,则主题信息应在主题备选名称扩展名中显示。

因此,如果主题字符串中缺少E=Email=属性,则此属性不会显示在那里。