asp.net-mvc - 我们可以在客户端服务器架构中使用智能卡身份验证吗?

标签 asp.net-mvc ssl iis c#-4.0 smartcard

我正在尝试开发 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/

相关文章:

javascript - 从 View 中的脚本调用 Controller 操作

Apache 在 Glassfish v3 前面使用 mod_proxy_ajp 使用 SSL

php - .htaccess 为特定目录关闭 SSL

asp.net - 发布网站的奇怪问题(发布后图像不显示)

sql-server - 防止应用程序外部访问数据库

c# - 在代码优先现有数据库中的 Entity Framework 中更新多对多关系中的数据

php - SSL 加密问题

ssl - 如何将来自不同服务器的 ssl 证书安装到我的服务器,

c# - Application_Start 与 serviceAutoStartProviders

jquery - 如何在 ASP.NET MVC 中为单词着色