CAC卡和Web服务器

Gam*_*rub 5 c# asp.net certificate cac

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

他们希望通过在单击按钮登录时输入CAC密码进行验证.

我正在使用ActivClient来管理CAC,但我不知道如何让网站与读卡器通信以让用户输入密码并验证它.

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

提前致谢

Cam*_*ilo 7

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

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

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

X509Certificate2 certificate = new X509Certificate2(Request.ClientCertificate.Certificate);
Run Code Online (Sandbox Code Playgroud)

这将为您提供包含CAC携带的信息的证书对象.您可以使用以下方式访问其中一些属性

certificate.GetNameInfo(X509NameType.SimpleName);  //X509NameType.EmailName, etc
Run Code Online (Sandbox Code Playgroud)

  • 提示用户输入引脚的部分是SSL设置部分中的IIS设置,您需要在其中提供客户端证书.在该区域有3个选项:Ignore,Accept和Require.忽略不会提示你.接受会提示您,但如果您点击取消,它会让您通过.如果您点击取消,需要会提示您并给您403错误.选择证书后,将填充Request.ClientCertificate.Certificate.如果未提示您,则该对象将为null. (2认同)