我正在尝试开发 ASP.Net Web 应用程序以接受智能卡身份验证。我已经创建了 Web 应用程序,并将其部署在 IIS 中。根证书安装在 CA 授权的 IIS 机器 Trusted Root 目录中。对于该 Web 应用程序,我添加了服务器证书,设置需要 SSL 并设置为接受证书。 当客户端访问此 Web 应用程序时,它会提示输入客户端证书,chrome 会提示输入客户端证书,将智能卡插入客户端的机器,当询问 PIN 时,用户输入有效的 PIN,我就可以进入主页网络应用程序。直到,这一切都按预期工作,但此时我想读取客户端证书并希望使用证书链验证该客户端。此外,基于客户端证书,我想获得该用户的角色。每次我尝试读取客户端证书时,我都无法获得证书。下面是读取智能卡证书的代码:
`
X509Store store = null;
store = new X509Store(StoreName.Root);
store.Open(OpenFlags.ReadOnly);
var certsAuthEnc = store.Certificates.Find(X509FindType.FindByKeyUsage, (int)CertificateType.DigitalSignature, false);
`
此处,store.Certificates.Count
变为 0。
请帮忙,我如何在客户端读取证书?
最佳答案
我得到了客户端证书,但没有私钥,如下所示:
var x509 = new X509Certificate2(this.Request.ClientCertificate.Certificate);
这个证书可以用链来验证。
关于asp.net-mvc - 我们可以在客户端服务器架构中使用智能卡身份验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45753112/