我使用智能卡对用户进行认证。 我有它处理服务器上的认证逻辑一个认证服务(SecurityTokenService)。
我使用X509Certificate2.Verify()验证证书。 由于这个API检查证书是否有效/由上线和证书颁发机构(CA)接触撤销,我是否需要在服务器上的根证书?
我们能否避免我们的本地计算机上有根证书? 或根证书始终是强制性的?
我使用智能卡对用户进行认证。 我有它处理服务器上的认证逻辑一个认证服务(SecurityTokenService)。
我使用X509Certificate2.Verify()验证证书。 由于这个API检查证书是否有效/由上线和证书颁发机构(CA)接触撤销,我是否需要在服务器上的根证书?
我们能否避免我们的本地计算机上有根证书? 或根证书始终是强制性的?
我尝试了一些东西,这里有意见:
首先X509Certificate2.Verify()
不检查,如果在链中的所有证书被吊销。 从这个职位,我才知道,验证方法在内部使用Crypt32 CertVerifyCertificateChainPolicy功能。 它的文件说,它不执行证书吊销检查。 总之,如果它就是所谓的证书,被撤销或不验证方法只检查。
关于根证书:
X509Certificate2.Verify()
和根证书不存在,则该方法将返回决绝false
。 所以用这个方法根证书是绝对必要的。 希望这可以帮助别人谁想要知道更多一点关于在C#中的证书验证。