CAC卡和Web服务器

时间:2015-05-18 19:23:26

标签: c# asp.net certificate cac

我有一个客户想要在我们的网站上实施CAC。通常,用户已根据分配给他们的证书进行访问。

他们想要在点击按钮登录时输入他们的CAC密码进行验证。

我使用ActivClient管理CAC,但我不知道如何让网站与读卡器通信,让用户输入密码并对其进行验证。

这是通过IIS设置完成的,还是我必须更新我的代码以某种方式与中间件通信?

提前致谢

2 个答案:

答案 0 :(得分:7)

我们使用的解决方案包括对IIS的一些配置更改以及一些代码更改,以使用CAC提供的信息。

在IIS(8.0)中,我们只将身份验证设置为匿名身份验证。在SSL设置中,我们选中了“要求SSL”,然后在“客户端证书”下,选择“需要”选项。

在您进行身份验证后,根据您需要从证书中访问的信息,您可以使用以下方法访问它:

X509Certificate2 certificate = new X509Certificate2(Request.ClientCertificate.Certificate);

这将为您提供包含CAC携带的信息的证书对象。您可以使用

访问其中一些属性
certificate.GetNameInfo(X509NameType.SimpleName);  //X509NameType.EmailName, etc

答案 1 :(得分:2)

我最近与国防部讨论了这个问题。没有涉及代码,您所要做的就是将IIS站点设置为使用集成安全性(或者可能是基于AD配置的证书身份验证)并关闭其他身份验证机制。然后,浏览器将使用Active Directory中配置的方法提示用户输入凭据,如果他们正确使用AD,则应显示CAC证书选择和PIN窗口。请注意,您还必须使用HTTPS,或者出于安全原因,浏览器不会将CAC凭据传递给服务器。