我正在使用以下代码读取 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# 读取它?
最佳答案
您正朝着正确的方向前进,但主题字段中似乎未显示电子邮件 RDN 属性。
不。此外,整个主题字段是可选的。因此,您可能需要相应地修改您的代码。可能会出现主题字段为空的情况,主题信息应显示在主题备用名称扩展中。
因此,如果主题字符串中缺少 E=
或 Email=
属性,则该属性不会出现在那里。
关于c# - 使用 C# 从证书签名请求 (CSR) 中读取电子邮件字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31250410/