我正在尝试开发ASP.Net Web应用程序以接受智能卡身份验证。我已经创建了Web应用程序,并将其部署在IIS中。根证书安装在CA授权的IIS机器的受信任根目录上。对于该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/

10-10 23:24
查看更多