我使用以下代码来阅读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#读取它?
答案 0 :(得分:2)
在attribs中我得到了通用名称,组织,部门
您的方向正确,但似乎主题字段中未显示电子邮件RDN属性。
CSR不一定是强制性的吗?
没有。此外,整个主题字段是可选的。因此,您可能需要相应地修改代码。主题字段为空时可能存在某种情况,则主题信息应在主题备选名称扩展名中显示。
因此,如果主题字符串中缺少E=
或Email=
属性,则此属性不会显示在那里。