为了在客户端验证它从服务器接收到的证书,验证方法有一个类型为 X509Certificate 的参数,即服务器证书。
当我调试时,我可以看到它有一个 Thumbprint 属性,但是当我尝试以 myCertificate.Thmbprint 的方式访问它们时,我得到一个编译器错误,它说该属性不存在。
但是,类型 X509Certificate2 具有此属性。
那么我怎样才能让指纹知道它是否是预期的证书?
谢谢。
听起来您所处的环境中您拥有
X509Certificate
而不是更强大的X509Certificate2
证书。
您的两个简单选择:
X509Certificate2 myCertificate2 = (X509Certificate2)myCertificate;
)GetCertHash()
或GetCertHashString()
方法(取决于您想要字节还是十六进制字符串)。 GetCertHashString()
与 Thumbprint
属性相同。您可以使用 ServicePointManager 类来检查提供的远程证书并进行任何您喜欢的比较。您可以选择接受或拒绝。