C# FindBySubjectName 函数

Ste*_*ull 1 c# security certificate find x509certificate

为什么:

foundCertificates = certificates.Find(X509FindType.FindBySubjectName, "TEXT 14", false);
Run Code Online (Sandbox Code Playgroud)

找到相同的证书

foundCertificates = certificates.Find(X509FindType.FindBySubjectName, "TEXT 141", false);
Run Code Online (Sandbox Code Playgroud)

如果我指定我想要“TEXT 141”,它不应该为我选择“TEXT 14”。

我该如何解决?

Ser*_*diy 5

从枚举成员的文档X509FindType.FindBySubjectName

使用该FindBySubjectName值,该Find方法使用提供的值执行不区分大小写的字符串比较。例如,如果您将“MyCert”传递给该Find方法,它将查找主题名称包含该字符串的所有证书,而不管其他主题值如何。按专有名称搜索是一种更精确的搜索。

因此,如果您想要精确匹配,请X509FindType.FindBySubjectDistinguishedName改用。

  • 知道了!X500DistinguishedName name = certificate.SubjectName; Console.WriteLine(name.Name); Tnx 现在可以使用了 (2认同)