使用 C# 从证书签名请求 (CSR) 中读取电子邮件字段
Reading email field from a certificate signing request (CSR) with C#
我正在使用以下代码读取 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);
在属性中我得到通用名称、组织、部门、城市、国家,但没有电子邮件地址
CSR 不应该是强制性的吗?
有没有办法用 C# 读取它?
in attribs I get common name, organization, department
您的方向是正确的,但电子邮件 RDN 属性似乎未显示在主题字段中。
Shouldn't be mandatory for a CSR?
没有。此外,整个主题字段是可选的。因此,您可能需要相应地修改您的代码。可能会出现Subject 字段为空的情况,此时Subject Alternative Names 扩展中会显示主题信息。
因此,如果主题字符串中缺少 E=
或 Email=
属性,则该属性不会出现在此处。
我正在使用以下代码读取 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);
在属性中我得到通用名称、组织、部门、城市、国家,但没有电子邮件地址
CSR 不应该是强制性的吗? 有没有办法用 C# 读取它?
in attribs I get common name, organization, department
您的方向是正确的,但电子邮件 RDN 属性似乎未显示在主题字段中。
Shouldn't be mandatory for a CSR?
没有。此外,整个主题字段是可选的。因此,您可能需要相应地修改您的代码。可能会出现Subject 字段为空的情况,此时Subject Alternative Names 扩展中会显示主题信息。
因此,如果主题字符串中缺少 E=
或 Email=
属性,则该属性不会出现在此处。